Sadržaj:

Uradi sam senzor temperature pomoću jedne diode: 3 koraka
Uradi sam senzor temperature pomoću jedne diode: 3 koraka

Video: Uradi sam senzor temperature pomoću jedne diode: 3 koraka

Video: Uradi sam senzor temperature pomoću jedne diode: 3 koraka
Video: Типы управления инверторным компрессором холодильника и его работа 2024, Novembar
Anonim
Uradi sam senzor temperature pomoću jedne diode
Uradi sam senzor temperature pomoću jedne diode
Uradi sam senzor temperature pomoću jedne diode
Uradi sam senzor temperature pomoću jedne diode

Dakle, kao jedna od činjenica o PN-spojevima je to što se njihov pad napona prema naprijed mijenja ovisno o prolaznoj struji i temperaturi spoja, upotrijebit ćemo ovo za izradu jednostavnog jeftinog temperaturnog senzora.

Ova postavka se obično koristi u mnogim integriranim krugovima za mjerenje unutarnje temperature i mnogih temperaturnih senzora kao poznati LM35 koji se temelji na ovom svojstvu.

Jednostavno, pad napona naprijed diode (koji je jedan PN-spoj) mijenja se s promjenom količine struje koja prolazi kroz nju, kao i s promjenom temperature diode, pad napona će se promijeniti (Kako se temperatura povećava, pad se smanjuje za vrijednost (1,0 milivolta na 2,0 milivolta za silicijeve diode i 2,5 milivolta za germanijeve diode).

Dakle, prolaskom konstantne struje kroz diodu, pad napona prema naprijed sada bi trebao varirati samo ovisno o temperaturi diode. Sada samo trebamo izmjeriti napon diode naprijed, primijeniti neke jednostavne jednadžbe i eto vam senzor temperature !!!

Supplies

1 - 1n4007 dioda #12 - 1 Kohm otpornik #13 - Arduino ploča

Korak 1: Dijagram kola

Dijagram kola
Dijagram kola

Kao što možete vidjeti na shemi, vrlo je jednostavno. serijskim spajanjem diode s otpornikom za ograničavanje struje i stabilnim izvorom napona možemo dobiti sirovi izvor konstantne struje, pa će izmjereni napon na diodi varirati samo zbog promjene temperature. Uvjerite se da vrijednost otpornika nije prenisko da kroz diodu prolazi velika struja i čini zamjetno samozagrijavanje diode, također nije jako visok otpor pa prolaz struje nije dovoljan za održavanje linearnog odnosa između napona prema naprijed i temperature.

Otpornik od 1 kilo ohma s napajanjem od 5 V trebao bi rezultirati strujom diode od 4 miliampera koja je dovoljna vrijednost za tu svrhu. I (dioda) = VCC / (Rserija + Rdioda)

Korak 2: Kodiranje

Moramo imati na umu da postoje neke vrijednosti koje treba prilagoditi u kodu kako bi se dobili bolji rezultati, poput:

1 - VCC_Voltage: budući da vrijednost analogRead () ovisi o VCC -u ATmega čipa, tada ga moramo dodati jednadžbi nakon što smo ga izmjerili na arduino ploči.

2 - V_OLD_0_C: prednji pad napona korištene diode pri struji od 4 mA i temperaturi od 0 Celzijusa

3 - Temperatura_koeficijent: temperaturni gradijent vaše diode (bolje je preuzeti iz lista s podacima) ili ga možete izmjeriti pomoću ove jednadžbe: Vnew - Vold = K (Tnew - Told)

gdje:

Vnew = novo izmjereni pad napona nakon zagrijavanja diode

Vold = izmjereni pad napona na nekoj sobnoj temperaturi

Tnew = temperatura na kojoj je dioda zagrijana

Rečeno = stara sobna temperatura na kojoj je izmjeren Vold

K = Temperaturni_koeficijent (negativna vrijednost varira između -1,0 do -2,5 miliVolti) Konačno sada možete učitati kôd i dobiti rezultate temperature.

#define Sens_Pin A0 // PA0 za ploču STM32F103C8

dvostruko V_OLD_0_C = 690,0; // 690 mV Napredni napon pri 0 Celzijusa pri 4 mA ispitne struje

dvostruki V_NEW = 0; // Novi napon naprijed na sobnoj temperaturi pri 4 mA ispitna struja dvostruka Temperatura = 0,0; // Sobna izračunata temperatura dvostruka Temperature_Coefficient = -1,6; //-1,6 mV promjena po stepenu Celzijusa (-2,5 za germanijeve diode), bolje uzeti iz lista sa podacima o diodama dvostruki VCC_Voltage = 5010,0; // Napon prisutan na 5V šini arduina u miliVoltima (potrebno za bolju točnost) (3300.0 za stm32)

void setup () {

// ovdje postavite svoj kôd za postavljanje, da biste ga jednom pokrenuli: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

void loop () {{100} {101}

// ovdje unesite svoj glavni kôd, za ponavljanje: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // podijelite sa 4,0 ako koristite 12 -bitnu temperaturu ADC -a = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

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

kašnjenje (500);

}

Korak 3: Dobijanje boljih vrijednosti

Dobijanje boljih vrijednosti
Dobijanje boljih vrijednosti
Dobijanje boljih vrijednosti
Dobijanje boljih vrijednosti

Mislim da je poželjno imati uz sebe pouzdani uređaj za mjerenje temperature prilikom izvođenja ovog projekta.

možete vidjeti da postoji primjetna greška u očitanjima koja mogu doseći 3 ili 4 stepena Celzijusa, pa odakle dolazi ta greška?

1 - možda ćete morati prilagoditi varijable navedene u prethodnom koraku

2 - ADC rezolucija arduina niža je od one koja nam je potrebna za otkrivanje male razlike napona

3 - referentni napon arduina (5V) je previsok za ovu malu promjenu napona na diodi

Dakle, ako ćete koristiti ovu postavku kao temperaturni senzor, trebali biste biti svjesni da, iako je jeftino i zgodno, nije točno, ali vam može dati vrlo dobru ideju o temperaturi vašeg sistema, bilo da je na PCB ili montiran na motor koji radi itd …

Ova instrukcija namijenjena je korištenju što je moguće manje komponenti, ali ako želite dobiti što preciznije rezultate iz ove ideje, možete napraviti neke promjene:

1 - dodajte neka pojačanja i stupnjeve filtriranja pomoću op -pojačala kao na ovoj poveznici 2 - koristite niži interni analogni referentni kontroler kao ploče STM32F103C8 s analognim referentnim naponom od 3,3 V (vidi točku 4) 3 - upotrijebite internu 1,1 V analognu referencu u arduino, ali imajte na umu da ne možete spojiti više od 1,1 V na bilo koji od arduino analognih pinova.

ovaj redak možete dodati u funkciju postavljanja:

analogReference (INTERNAL);

4 - Upotrijebite mikrokontroler koji ima ADC veće rezolucije kao STM32F103C8 koji ima 12 -bitnu ADC rezoluciju. Ukratko, ova postavka zasnovana na arduinu može dati lijep pregled temperature vašeg sistema, ali ne tako točne rezultate (približno 4,88 mV/očitanje)

postavka STM32F103C8 dala bi vam prilično precizan rezultat jer ima viši 12-bitni ADC i nižu analognu referentnu vrijednost od 3,3 V (približno 0,8 mV/čitanje)

Pa to je to !!: D

Preporučuje se: