Daftar Isi:

Sensor Suhu DIY Menggunakan Satu Dioda: 3 Langkah
Sensor Suhu DIY Menggunakan Satu Dioda: 3 Langkah

Video: Sensor Suhu DIY Menggunakan Satu Dioda: 3 Langkah

Video: Sensor Suhu DIY Menggunakan Satu Dioda: 3 Langkah
Video: Cara membuat Automatic Temperature Control menggunakan KSD-01F 2024, Juli
Anonim
Sensor Suhu DIY Menggunakan Satu Dioda
Sensor Suhu DIY Menggunakan Satu Dioda
Sensor Suhu DIY Menggunakan Satu Dioda
Sensor Suhu DIY Menggunakan Satu Dioda

Jadi sebagai salah satu fakta tentang PN-junction adalah bahwa penurunan tegangan majunya berubah sesuai dengan arus yang lewat dan juga suhu persimpangan, kita akan menggunakan ini untuk membuat sensor suhu murah yang sederhana.

Pengaturan ini biasanya digunakan di banyak Sirkuit Terpadu untuk mengukur suhu internal dan banyak sensor suhu seperti LM35 terkenal yang didasarkan pada properti ini.

Sederhananya, penurunan tegangan maju dioda (yang merupakan persimpangan PN tunggal) berubah ketika jumlah arus yang melewatinya berubah, juga ketika suhu dioda berubah, penurunan tegangan akan berubah (Seiring suhu meningkat, tegangan maju drop berkurang dengan nilai (1,0 miliVolt menjadi 2,0 miliVolt untuk dioda silikon dan 2,5 miliVolt untuk dioda germanium).

Jadi dengan melewatkan arus konstan melalui dioda, penurunan tegangan maju sekarang hanya bervariasi sesuai dengan suhu dioda. Kita hanya perlu mengukur tegangan maju dioda, menerapkan beberapa persamaan sederhana dan voila, inilah sensor suhu Anda !!!

Perlengkapan

1 - 1n4007 diode #12 - 1 Kohm resistor #13 - Arduino board

Langkah 1: Diagram Sirkuit

Diagram Sirkuit
Diagram Sirkuit

Seperti yang Anda lihat dalam skema itu sangat sederhana. dengan menghubungkan dioda secara seri dengan resistor pembatas arus dan sumber tegangan stabil kita dapat memperoleh sumber arus konstan kasar, sehingga tegangan terukur di dioda hanya akan bervariasi karena perubahan suhu. Pastikan nilai resistor tidak terlalu rendah sehingga banyak arus yang melewati dioda dan membuat pemanasan sendiri terlihat di dioda, juga bukan resistor yang sangat tinggi sehingga arus yang lewat tidak cukup untuk mempertahankan hubungan linier antara tegangan maju dan suhu.

resistor 1 kilo Ohm dengan suplai 5V harus menghasilkan arus dioda 4 miliAmpere yang merupakan nilai yang cukup untuk tujuan ini. I(dioda) = VCC / (Rseri + Rdioda)

Langkah 2: Pengkodean

Kita perlu mengingat bahwa ada beberapa nilai yang harus diubah dalam kode untuk mendapatkan hasil yang lebih baik seperti:

1 - VCC_Voltage: karena nilai analogRead() tergantung pada VCC chip ATmega maka kita perlu menambahkannya ke persamaan setelah mengukurnya di papan arduino.

2 - V_OLD_0_C: penurunan tegangan maju dioda bekas pada arus 4 mA dan suhu 0 Celcius

3 - Temperatur_Koefisien: gradien suhu dioda Anda (lebih baik didapat dari lembar data) atau Anda dapat mengukurnya menggunakan persamaan ini: Vnew - Vold = K (Tnew - Told)

di mana:

Vnew = tegangan jatuh yang baru diukur setelah memanaskan dioda

Vold = tegangan jatuh terukur pada beberapa suhu kamar

Tnew = suhu dioda dipanaskan sampai

Told = suhu ruangan lama yang diukur Vold pada

K = Temperature_Coefficient (nilai negatif bervariasi antara -1.0 hingga -2.5 milliVolts) Akhirnya Anda sekarang dapat mengunggah kode dan mendapatkan hasil suhu Anda.

#define Sens_Pin A0 //PA0 untuk papan STM32F103C8

ganda V_OLD_0_C = 690.0; //690 mV Tegangan maju pada 0 Celcius pada arus uji 4 mA

ganda V_BARU = 0; //Tegangan maju baru pada suhu kamar pada 4 mA arus uji ganda Suhu = 0,0; //Kamar menghitung suhu ganda Suhu_Koefisien = -1.6; //-1,6 mV perubahan per derajat Celcius (-2,5 untuk dioda germanium), lebih baik untuk mendapatkan dari dioda datasheet ganda VCC_Voltage = 5010.0; //Tegangan hadir pada rel 5V arduino dalam miliVolts (diperlukan untuk akurasi yang lebih baik) (3300.0 untuk stm32)

batalkan pengaturan() {

// letakkan kode setup Anda di sini, untuk dijalankan sekali: pinMode(Sens_Pin, INPUT); Serial.begin(9600); }

lingkaran kosong() {

// letakkan kode utama Anda di sini, untuk dijalankan berulang kali: V_NEW = analogRead(Sens_Pin)*VCC_Voltage/1024.0; // bagi dengan 4.0 jika Anda menggunakan 12 bit ADC Temperature = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print("Suhu = ");

Serial.print(Suhu); Serial.println("C");

penundaan (500);

}

Langkah 3: Mendapatkan Nilai Lebih Baik

Mendapatkan Nilai Lebih Baik
Mendapatkan Nilai Lebih Baik
Mendapatkan Nilai Lebih Baik
Mendapatkan Nilai Lebih Baik

Saya pikir disarankan untuk memiliki alat pengukur suhu tepercaya di samping Anda saat melakukan proyek ini.

Anda dapat melihat bahwa ada kesalahan nyata dalam pembacaan yang bisa mencapai 3 atau 4 derajat Celcius jadi dari mana kesalahan ini berasal?

1 - Anda mungkin perlu mengubah variabel yang disebutkan di langkah sebelumnya

2 - resolusi ADC arduino lebih rendah dari yang kita butuhkan untuk mendeteksi perbedaan tegangan yang kecil

3 - referensi tegangan arduino (5V) terlalu tinggi untuk perubahan tegangan kecil ini di dioda

Jadi jika Anda akan menggunakan pengaturan ini sebagai sensor suhu, Anda harus menyadari bahwa meskipun murah dan praktis, itu tidak akurat tetapi dapat memberi Anda ide yang sangat baik tentang suhu sistem Anda baik itu di PCB atau dipasang untuk menjalankan motor dll…

Instruksi ini dimaksudkan untuk menggunakan komponen sesedikit mungkin. Tetapi jika Anda ingin mendapatkan hasil yang paling akurat dari ide ini, Anda dapat melakukan beberapa perubahan:

1 - tambahkan beberapa tahap amplifikasi dan penyaringan menggunakan op-amp seperti pada tautan ini2 - gunakan pengontrol referensi analog internal yang lebih rendah sebagai papan STM32F103C8 dengan tegangan referensi analog 3,3 Volt (lihat poin 4)3 - gunakan referensi analog internal 1,1 V di arduino tetapi perlu diketahui bahwa Anda tidak dapat menghubungkan lebih dari 1,1 Volt ke salah satu pin analog arduino.

anda dapat menambahkan baris ini di fungsi pengaturan:

analogReferensi(INTERNAL);

4 - Gunakan mikrokontroler yang memiliki ADC resolusi lebih tinggi seperti STM32F103C8 yang memiliki resolusi ADC 12 bitJadi singkatnya, pengaturan berbasis arduino ini dapat memberikan gambaran yang bagus tentang suhu sistem Anda tetapi hasil yang tidak begitu akurat (sekitar 4,88 mV/Pembacaan)

pengaturan STM32F103C8 akan memberi Anda hasil yang cukup akurat karena memiliki ADC 12-bit yang lebih tinggi dan nilai referensi analog 3.3V yang lebih rendah (sekitar 0,8 mV/Membaca)

Nah, itu dia!!:D

Direkomendasikan: