Mündəricat:

Bir Diod istifadə edən DIY İstilik Sensoru: 3 addım
Bir Diod istifadə edən DIY İstilik Sensoru: 3 addım

Video: Bir Diod istifadə edən DIY İstilik Sensoru: 3 addım

Video: Bir Diod istifadə edən DIY İstilik Sensoru: 3 addım
Video: DIY DC UPS 1228-12 на 100 Ватт - часть 2, сборка в корпус, преобразователи напряжения 2024, Iyul
Anonim
Bir Diod istifadə edərək DIY İstilik Sensoru
Bir Diod istifadə edərək DIY İstilik Sensoru
Bir Diod istifadə edərək DIY İstilik Sensoru
Bir Diod istifadə edərək DIY İstilik Sensoru

Beləliklə, PN qovşaqları ilə bağlı faktlardan biri də irəli gerilim düşməsinin keçmə cərəyanına və qovşağın istiliyinə görə dəyişməsidir, bundan istifadə edərək sadə bir ucuz temperatur sensoru hazırlayacağıq.

Bu qurğu, daxili istiliyini və bir çox temperatur sensörünü bu xüsusiyyətə əsaslanan məşhur LM35 olaraq ölçmək üçün bir çox İnteqral sxemlərdə istifadə olunur.

Sadəcə bir diodun irəli gərginlik düşməsi (tək bir PN-qovşağıdır), içindən keçən cərəyanın miqdarı dəyişdikcə dəyişir, həm də diodun temperaturu dəyişdikcə gərginlik düşməsi də dəyişəcək (Temperatur artdıqca irəli düşmə (silikon diodlar üçün 1.0 milliVoltdan 2.0 milliVolta və germanium diodları üçün 2.5 milliVolta) dəyərində azalır.

Beləliklə, dioddan sabit bir cərəyan keçirərək irəli gerilim düşməsi indi yalnız diodun istiliyinə görə dəyişməlidir. İndi yalnız diodun irəli gərginliyini ölçmək, bəzi sadə tənliklər tətbiq etmək lazımdır və burada səs sensoru budur!

Təchizat

1 - 1n4007 diod #12 - 1 Kohm rezistor #13 - Arduino lövhəsi

Addım 1: Dövrə Şeması

Dövrə diaqramı
Dövrə diaqramı

Şemada gördüyünüz kimi çox sadədir. Diyotu cərəyan məhdudlaşdıran bir rezistor və sabit bir gərginlik mənbəyi ilə ardıcıl olaraq bağlayaraq, xam sabit bir cərəyan mənbəyi əldə edə bilərik, buna görə də dioddakı ölçülmüş gərginlik yalnız temperatur dəyişikliyinə görə dəyişəcəkdir. çox aşağı cərəyanın dioddan keçməsi və diodda nəzərəçarpacaq dərəcədə özünü qızdırması, eyni zamanda çox yüksək bir rezistor deyil, buna görə də cərəyan irəli gərginlik ilə temperatur arasında xətti bir əlaqə saxlamaq üçün kifayət deyil.

5V təchizatı olan 1 kilo Ohm müqavimət bu məqsəd üçün kifayət qədər dəyər olan 4 milliAmpere diod cərəyanı ilə nəticələnməlidir. I (diod) = VCC / (Rseries + Rdiode)

Addım 2: Kodlaşdırma

Daha yaxşı nəticələr əldə etmək üçün kodda çimdikləmək üçün bəzi dəyərlərin olduğunu nəzərə almalıyıq:

1 - VCC_Voltage: analogRead () dəyəri ATmega çipinin VCC -dən asılı olduğu üçün arduino lövhəsində ölçdükdən sonra onu tənliyə əlavə etməliyik.

2 - V_OLD_0_C: istifadə olunan diodun 4 mA cərəyanında və 0 Selsi temperaturda irəli gerilim düşməsi

3 - Temperature_Coefficient: diodunuzun temperatur qradiyenti (məlumat cədvəlindən əldə etmək daha yaxşıdır) və ya bu tənlikdən istifadə edərək ölçə bilərsiniz: Vnew - Vold = K (Tnew - Told)

harada:

Vnew = diodun qızdırılmasından sonra yeni ölçülmüş düşmə gərginliyi

Vold = bəzi otaq temperaturunda ölçülmüş düşmə gərginliyi

Tnew = diodun qızdırıldığı temperatur

Told = Voldun ölçüldüyü köhnə otaq temperaturu

K = Temperature_Coefficient (mənfi dəyər -1.0 ilə -2.5 milliVolts arasında dəyişir) Nəhayət, indi kodu yükləyib istiliyinizin nəticələrini əldə edə bilərsiniz.

STM32F103C8 lövhəsi üçün #define Sens_Pin A0 // PA0

ikiqat V_OLD_0_C = 690.0; // 690 mV 0 Celsiusda 4 mA sınaq cərəyanında irəli gərginlik

ikiqat V_NEW = 0; // 4 mA sınaq cərəyanında otaq temperaturunda yeni irəli gərginlik ikiqat Temperatur = 0.0; // Otaq hesablanmış temperatur ikiqat Temperature_Coefficient = -1.6; Selsi dərəcəsi başına //-1.6 mV dəyişikliyi (germanium diodları üçün -2.5), daha yaxşı diod məlumat cədvəlindən əldə etmək daha yaxşıdır VCC_Voltage = 5010.0; // Arduinonun 5V rayında milliVoltsda olan gərginlik (daha yaxşı dəqiqlik üçün lazımdır) (stm32 üçün 3300.0)

boş quraşdırma () {

// quraşdırma kodunuzu bura qoyun, bir dəfə işləsin: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

boşluq döngəsi () {

// əsas kodunuzu bura qoyun, təkrar işləsin: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // 12 bitlik bir ADC Temperaturundan istifadə edirsinizsə 4.0 -ə bölün = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

Serial çap (İstilik); Serial.println ("C");

gecikmə (500);

}

Addım 3: Daha yaxşı dəyərlər əldə edin

Daha yaxşı dəyərlər əldə etmək
Daha yaxşı dəyərlər əldə etmək
Daha yaxşı dəyərlər əldə etmək
Daha yaxşı dəyərlər əldə etmək

Düşünürəm ki, bu layihəni həyata keçirərkən yanında etibarlı bir temperatur ölçmə cihazının olması məsləhətdir.

3 və ya 4 dərəcə Selsiyə çata bilən oxunuşlarda nəzərə çarpan bir səhv olduğunu görə bilərsiniz, bu səhv hardan gəlir?

1 - əvvəlki addımda göstərilən dəyişənləri düzəltməyiniz lazım ola bilər

2 - arduinonun ADC qətnaməsi, kiçik gərginlik fərqini aşkar etmək üçün lazım olandan daha aşağıdır

3 - arduino (5V) gərginlik istinadı, dioddakı bu kiçik gərginlik dəyişikliyi üçün çox yüksəkdir

Beləliklə, bu qurğunu bir temperatur sensoru olaraq istifadə edəcəksinizsə, bilməlisiniz ki, ucuz və lazımlı olsa da, dəqiq deyil, ancaq sisteminizin temperaturu haqqında çox yaxşı bir fikir verə bilər. PCB və ya işləyən mühərrikə quraşdırılmışdır və s.

Bu təlimat mümkün olan ən az miqdarda komponentdən istifadə etmək üçündür, ancaq bu fikirdən ən doğru nəticələr əldə etmək istəyirsinizsə, bəzi dəyişikliklər edə bilərsiniz:

1 - bu linkdəki kimi op -amperlərdən istifadə edərək bəzi gücləndiricilər və süzgəc mərhələləri əlavə edin2 - 3.3 Volt analoq gərginlikli STM32F103C8 lövhələri kimi daha aşağı daxili analoq nəzarətçi istifadə edin (bax nöqtə 4) 3 - daxili 1.1 V analoq istinaddan istifadə edin arduino, ancaq unutmayın ki, arduino analoq pinlərindən heç birinə 1.1 Voltdan artıq qoşa bilməzsiniz.

bu xətti quraşdırma funksiyasına əlavə edə bilərsiniz:

analoq İstinad (Daxili);

4 - 12 bit ADC qətnaməsi olan STM32F103C8 kimi daha yüksək qətnamə ADC -yə malik bir mikro nəzarətçi istifadə edin. Belə bir sözlə, bu arduino əsaslı qurğu sisteminizin istiliyinə gözəl bir baxış verə bilər, ancaq o qədər də dəqiq olmayan nəticələr verə bilər (təxminən 4.88 mV/Oxu)

STM32F103C8 qurğusu daha yüksək 12 bitlik ADC və daha aşağı 3.3V analoq istinad dəyərinə (təxminən 0,8 mV/Oxu) malik olduğu üçün sizə olduqca dəqiq bir nəticə verərdi.

Yaxşı, budur !!: D

Tövsiyə: