Cuprins:
Video: Senzor de temperatură DIY folosind o diodă: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
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
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
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:
Senzor de temperatură și afișaj LCD TMP36 folosind Arduino (Tinkercad): 7 pași
Senzor de temperatură și afișaj LCD TMP36 folosind Arduino (Tinkercad): Bună ziua tuturor! Suntem studenți de la Universitatea Tun Hussein Onn Malaysia (UTHM) care desfășoară un proiect pentru a demonstra cum putem simula un senzor de temperatură, un LCD și un Arduino folosind Tinkercad ca parte a curriculum-ului nostru pentru UQD0801 (Robocon 1) (
Tutorial: Cum se realizează un senzor de temperatură simplu folosind DS18B20 și Arduino UNO: 3 pași
Tutorial: Cum să creați un senzor de temperatură simplu folosind DS18B20 și Arduino UNO: Descriere: Acest tutorial vă va arăta câțiva pași simpli despre cum să faceți senzorul de temperatură funcțional. Durează doar câteva minute pentru a fi adevărat în proiectul dvs. Noroc ! Termometrul digital DS18B20 oferă o temperatură de 9 biți până la 12 biți Celsius
Construiți un dispozitiv senzor de temperatură Apple HomeKit folosind un ESP8266 și un BME280: 10 pași
Construiți un dispozitiv senzor de temperatură Apple HomeKit folosind un ESP8266 și un BME280: În modul instructiv de astăzi, vom realiza senzori de temperatură, umiditate și umiditate cu costuri reduse, fie pe senzorul de temperatură / umiditate AOSONG AM2302 / DHT22, fie pe senzorul de umiditate BME280, senzorul de umiditate YL-69. și platforma ESP8266 / Nodemcu. Și pentru afișare
Senzor de temperatură folosind termistor cu Arduino Uno: 4 pași
Senzor de temperatură folosind termistor cu Arduino Uno: Bună băieți, în acest instructable vom învăța cum să folosiți termistor cu Arduino. Termistorul este în esență un rezistor a cărui rezistență variază în funcție de variația temperaturii. Prin urmare, putem citi rezistența acestuia și putem obține temperatura din acesta & Termistorul i
Senzor de temperatură DIY folosind Arduino și LM 35 Simplu: 5 pași
Senzor de temperatură DIY folosind Arduino și LM 35 Simplu: Bună prieteni, Astăzi vom construi un circuit de senzor de măsurare a temperaturii în jurul microcontrolerului Arduino UNO folosind un senzor LM35. Deci, fără a pierde timpul, să începem