Isi kandungan:

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

Video: Sensor Suhu DIY Menggunakan Satu Diod: 3 Langkah

Video: Sensor Suhu DIY Menggunakan Satu Diod: 3 Langkah
Video: Cara Membuat Rangkaian Sensor Suhu Menggunakan Dioda 2024, November
Anonim
Sensor Suhu DIY Menggunakan Satu Diod
Sensor Suhu DIY Menggunakan Satu Diod
Sensor Suhu DIY Menggunakan Satu Diod
Sensor Suhu DIY Menggunakan Satu Diod

Oleh kerana salah satu fakta mengenai persimpangan PN adalah bahawa penurunan voltan hadapan mereka berubah mengikut arus yang berlalu dan ke suhu persimpangan juga, kita akan menggunakan ini untuk membuat sensor suhu murah yang sederhana.

Penyediaan ini biasanya digunakan di banyak Litar Bersepadu untuk mengukur suhu dalamannya dan banyak sensor suhu sebagai LM35 yang terkenal yang berdasarkan sifat ini.

Cukup penurunan voltan hadapan diod (yang merupakan persimpangan PN tunggal) berubah semasa jumlah arus yang melaluinya berubah, juga ketika suhu diod berubah penurunan voltan akan berubah (Apabila suhu meningkat, maju penurunan menurun dengan nilai (1.0 milliVolts hingga 2.0 milliVolts untuk diod silikon dan 2.5 milliVolts untuk dioda germanium).

Oleh itu, dengan mengalirkan arus tetap melalui diod, penurunan voltan ke hadapan sekarang hanya boleh berubah mengikut suhu diod. Kita hanya perlu sekarang untuk mengukur voltan hadapan dioda, menerapkan beberapa persamaan dan voilà berikut ini adalah sensor suhu anda !!!

Bekalan

1 - 1n4007 diod # 12 - 1 Kohm perintang # 13 - Papan Arduino

Langkah 1: Diagram Litar

Rajah Litar
Rajah Litar

Seperti yang anda lihat dalam skema, ia sangat mudah. dengan menyambungkan diod secara bersiri dengan perintang penghad arus dan sumber voltan yang stabil, kita dapat memperoleh sumber arus pemalar kasar, jadi voltan yang diukur merentasi diod hanya akan berubah kerana perubahan suhu. Pastikan nilai perintang tidak terlalu rendah sehingga arus yang banyak melewati dioda dan membuat pemanasan diri yang ketara dalam dioda, juga bukan perintang yang sangat tinggi sehingga lulus arus tidak mencukupi untuk mengekalkan hubungan linear antara voltan hadapan dan suhu.

perintang Ohm 1 kilo dengan bekalan 5V akan menghasilkan arus diod 4 milliAmpere yang merupakan nilai yang mencukupi untuk tujuan ini. I (dioda) = VCC / (Rseries + Rdiode)

Langkah 2: Pengekodan

Kita perlu ingat bahawa ada beberapa nilai untuk mengubah kod untuk mendapatkan hasil yang lebih baik seperti:

1 - VCC_Voltage: kerana nilai analogRead () bergantung pada VCC cip ATmega maka kita perlu menambahkannya ke persamaan setelah mengukurnya di papan arduino.

2 - V_OLD_0_C: penurunan voltan hadapan diod yang digunakan pada arus 4 mA dan suhu 0 Celsius

3 - Suhu_Kefisien: kecerunan suhu diod anda (lebih baik diperoleh dari lembaran data) atau anda boleh mengukurnya menggunakan persamaan ini: Vnew - Vold = K (Tnew - Dikatakan)

di mana:

Vnew = voltan penurunan yang baru diukur setelah memanaskan diod

Vold = voltan penurunan yang diukur pada beberapa suhu bilik

Tnew = suhu di mana diod dipanaskan

Dikatakan = suhu bilik lama di mana Vold diukur

K = Suhu_Kefisien (nilai negatif yang bervariasi antara -1.0 hingga -2.5 milliVolts) Akhirnya anda kini dapat memuat naik kod dan mendapatkan hasil suhu anda.

#define Sens_Pin A0 // PA0 untuk papan STM32F103C8

berganda V_OLD_0_C = 690.0; // 690 mV Voltan hadapan pada 0 Celsius pada arus ujian 4 mA

berganda V_NEW = 0; // Voltan hadapan baru pada suhu bilik pada suhu 4 mA menguji suhu berganda semasa = 0,0; // Suhu dikira dua kali suhu Suhu_Pekali = -1.6; //-1.6 mV perubahan per darjah Celsius (-2.5 untuk germanium dioda), lebih baik dapatkan dari lembaran data diod ganda VCC_Voltage = 5010.0; // Voltan hadir pada rel 5V arduino dalam milliVolts (diperlukan untuk ketepatan yang lebih baik) (3300.0 untuk stm32)

batal persediaan () {

// letakkan kod persediaan anda di sini, untuk dijalankan sekali: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

gelung kosong () {

// letakkan kod utama anda di sini, untuk dijalankan berulang kali: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // bahagi dengan 4.0 jika anda menggunakan Suhu ADC 12 bit = ((V_NEW - V_OLD_0_C) / Suhu_Kefisien);

Serial.print ("Temp =");

Cetakan bersiri (Suhu); Serial.println ("C");

kelewatan (500);

}

Langkah 3: Mendapatkan Nilai yang Lebih Baik

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

Saya rasa ada baiknya anda mempunyai alat pengukur suhu yang boleh dipercayai di sebelah anda semasa melakukan projek ini.

anda dapat melihat bahawa terdapat ralat yang ketara dalam bacaan yang boleh mencapai 3 atau 4 darjah Celsius, jadi dari manakah kesalahan ini berasal?

1 - anda mungkin perlu mengubah pemboleh ubah yang disebutkan pada langkah sebelumnya

2 - resolusi ADC arduino lebih rendah daripada yang kita perlukan untuk mengesan perbezaan voltan kecil

3 - rujukan voltan arduino (5V) terlalu tinggi untuk perubahan voltan kecil ini merentasi diod

Oleh itu, jika anda akan menggunakan persediaan ini sebagai sensor suhu, anda harus sedar bahawa walaupun murah dan berguna, ia tidak tepat tetapi dapat memberi anda idea yang sangat baik mengenai suhu sistem anda sama ada pada PCB atau dipasang untuk menjalankan motor dll …

Instruksional ini bertujuan untuk menggunakan sebilangan kecil komponen yang mungkin. Tetapi jika anda ingin mendapatkan hasil yang paling tepat dari idea ini, anda boleh melakukan beberapa perubahan:

1 - tambahkan beberapa tahap penguatan dan penapisan menggunakan op-amp seperti dalam pautan ini 2 - gunakan pengawal rujukan analog dalaman yang lebih rendah sebagai papan STM32F103C8 dengan voltan rujukan analog 3.3 Volt (lihat titik 4) 3 - gunakan rujukan analog 1.1 V dalaman di arduino tetapi sedar bahawa anda tidak dapat menyambungkan lebih daripada 1.1 Volt ke mana-mana pin analog arduino.

anda boleh menambah baris ini dalam fungsi persediaan:

analogReference (DALAMAN);

4 - Gunakan mikrokontroler yang mempunyai resolusi ADC yang lebih tinggi seperti STM32F103C8 yang mempunyai resolusi ADC 12 bit. Jadi secara ringkasnya, persediaan berdasarkan arduino ini dapat memberikan gambaran keseluruhan yang bagus mengenai suhu sistem anda tetapi hasilnya tidak begitu tepat (kira-kira 4.88 mV / Bacaan)

persediaan STM32F103C8 akan memberi anda hasil yang cukup tepat kerana mempunyai ADC 12-bit yang lebih tinggi dan nilai rujukan analog 3.3V yang lebih rendah (kira-kira 0.8 mV / Bacaan)

Baiklah, itu sahaja !!: D

Disyorkan: