Cuprins:

Senzor de temperatură DIY folosind o diodă: 3 pași
Senzor de temperatură DIY folosind o diodă: 3 pași

Video: Senzor de temperatură DIY folosind o diodă: 3 pași

Video: Senzor de temperatură DIY folosind o diodă: 3 pași
Video: Cum schimbi senzor de temperatura la vw 2024, Noiembrie
Anonim
Senzor de temperatură DIY folosind o diodă
Senzor de temperatură DIY folosind o diodă
Senzor de temperatură DIY folosind o diodă
Senzor de temperatură DIY folosind o diodă

Deci, unul dintre faptele despre joncțiunile PN este că căderea de tensiune înainte se modifică în funcție de curentul de trecere și de temperatura joncțiunii, vom folosi acest lucru pentru a face un senzor de temperatură simplu ieftin.

Această configurație este utilizată în mod obișnuit în multe circuite integrate pentru a măsura temperatura sa internă și mulți senzori de temperatură, cum ar fi celebrul LM35 care se bazează pe această proprietate.

Pur și simplu căderea de tensiune directă a unei diode (care este o singură joncțiune PN) se schimbă pe măsură ce se modifică cantitatea de curent care trece prin ea, de asemenea, pe măsură ce temperatura diodei se schimbă, căderea de tensiune se va schimba (Pe măsură ce temperatura crește, scăderea scade cu o valoare de (1,0 milliVolți la 2,0 milliVolți pentru diodele de siliciu și 2,5 milliVolți pentru diodele de germaniu).

Deci, trecând un curent constant prin diodă, căderea de tensiune directă ar trebui să varieze acum numai în funcție de temperatura diodei. Trebuie doar acum să măsurăm tensiunea directă a diodei, să aplicăm câteva ecuații simple și voilà iată senzorul de temperatură !!!

Provizii

1 - 1n4007 diodă # 12 - 1 Kohm rezistor # 13 - Placă Arduino

Pasul 1: Diagrama circuitului

Diagrama circuitului
Diagrama circuitului

După cum puteți vedea în schemă, este foarte simplu. prin conectarea diodei în serie cu un rezistor de limitare a curentului și o sursă stabilă de tensiune putem obține o sursă de curent constant brut, astfel încât tensiunea măsurată pe diodă va varia doar din cauza schimbării temperaturii. Asigurați-vă că valoarea rezistorului nu este prea mic pentru a trece mult curent prin diodă și face o autoîncălzire vizibilă în diodă, de asemenea, nu este un rezistor foarte mare, astfel încât trecerea curentului nu este suficientă pentru a menține o relație liniară între tensiunea directă și temperatură.

un rezistor de 1 kg Ohm cu o sursă de alimentare de 5V ar trebui să conducă la un curent de diodă de 4 milliAmpere, care este o valoare suficientă în acest scop. I (diodă) = VCC / (Rseries + Rdiode)

Pasul 2: Codificare

Trebuie să ținem cont de faptul că există câteva valori de modificat în cod pentru a obține rezultate mai bune, cum ar fi:

1 - VCC_Voltage: deoarece valoarea analogRead () depinde de VCC-ul cipului ATmega, atunci trebuie să-l adăugăm la ecuație după măsurarea acestuia pe placa arduino.

2 - V_OLD_0_C: căderea de tensiune înainte a diodei utilizate la un curent de 4 mA și o temperatură de 0 Celsius

3 - Temperatură_Coeficient: gradientul de temperatură al diodei dvs. (mai bine să obțineți din foaia tehnică) sau îl puteți măsura folosind această ecuație: Vnew - Vold = K (Tnew - Told)

Unde:

Vnew = tensiunea de cădere nou măsurată după încălzirea diodei

Vold = tensiunea de cădere măsurată la o anumită temperatură a camerei

Tnew = temperatura la care a fost încălzită dioda

Told = temperatura camerei vechi la care a fost măsurată Vold

K = Temperatură_Coeficient (o valoare negativă variind între -1,0 și -2,5 milliVolți) În cele din urmă puteți încărca acum codul și puteți obține rezultatele temperaturii.

#define Sens_Pin A0 // PA0 pentru placa STM32F103C8

dublu V_OLD_0_C = 690,0; // 690 mV Tensiune înainte la 0 Celsius la 4 mA curent de testare

dublu V_NEW = 0; // Nouă tensiune înainte la temperatura camerei la 4 mA curent de testare Temperatura dublă = 0,0; // Temperatura calculată în cameră dublă Temperatură_Coeficient = -1,6; //-1,6 mV schimbare pe grade Celsius (-2,5 pentru diode de germaniu), mai bine să obțineți din foaia tehnică a diodei VCC_Voltage = 5010,0; // Tensiunea prezentă la șina de 5V a arduino-ului în milliVolți (necesară pentru o precizie mai bună) (3300.0 pentru stm32)

configurare nulă () {

// puneți codul de configurare aici, pentru a rula o dată: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

bucla nulă () {

// puneți codul principal aici, pentru a rula în mod repetat: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // împărțiți la 4.0 dacă utilizați o temperatură ADC pe 12 biți = ((V_NEW - V_OLD_0_C) / Temperature_Coefficient);

Serial.print ("Temp =");

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

întârziere (500);

}

Pasul 3: Obținerea unor valori mai bune

Obținerea unor valori mai bune
Obținerea unor valori mai bune
Obținerea unor valori mai bune
Obținerea unor valori mai bune

Cred că este recomandabil să aveți lângă dvs. un dispozitiv de măsurare a temperaturii de încredere atunci când faceți acest proiect.

puteți vedea că există o eroare vizibilă în citiri care poate ajunge la 3 sau 4 grade Celsius, deci de unde vine această eroare?

1 - poate fi necesar să modificați variabilele menționate în pasul anterior

2 - rezoluția ADC a arduino-ului este mai mică decât cea necesară pentru a detecta diferența mică de tensiune

3 - referința de tensiune a arduino-ului (5V) este prea mare pentru această mică modificare de tensiune în diodă

Deci, dacă veți utiliza această configurație ca senzor de temperatură, ar trebui să știți că, deși este ieftin și la îndemână, nu este precisă, dar vă poate oferi o idee foarte bună despre temperatura sistemului dvs. fie că este pe un PCB sau montat pe motorul care rulează etc …

Această instrucțiune este menită să utilizeze cea mai mică cantitate posibilă de componente, dar dacă doriți să obțineți cele mai precise rezultate din această idee, puteți face câteva modificări:

1 - adăugați câteva amplificări și etape de filtrare folosind amplificatoare op ca în această legătură arduino, dar rețineți că nu puteți conecta mai mult de 1,1 volți la oricare dintre pinii analogici arduino.

puteți adăuga această linie în funcția de configurare:

analogReference (INTERN);

4 - Utilizați un microcontroler cu rezoluție mai mare ADC ca STM32F103C8 care are o rezoluție ADC de 12 biți Deci, pe scurt, această configurație bazată pe arduino poate oferi o imagine de ansamblu frumoasă despre temperatura sistemului, dar rezultate nu atât de exacte (aproximativ 4,88 mV / citire)

configurația STM32F103C8 vă va oferi un rezultat destul de precis, deoarece are un ADC de 12 biți mai mare și o valoare de referință analogică de 3,3V mai mică (aproximativ 0,8 mV / citire)

Ei bine, asta este!: D

Recomandat: