Sadržaj:

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

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

Video: Napravite sam senzor temperature pomoću jedne diode: 3 koraka
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Srpanj
Anonim
Senzor temperature DIY pomoću jedne diode
Senzor temperature DIY pomoću jedne diode
Senzor temperature DIY pomoću jedne diode
Senzor temperature DIY 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 o temperaturi spoja, to ćemo upotrijebiti za izradu jednostavnog jeftinog osjetnika temperature.

Ova se postavka 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 pojedinačni 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 silicijske 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 !!!

Pribor

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

Korak 1: Dijagram kruga

Kružni dijagram
Kružni dijagram

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 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 u jednadžbu 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 Celzija

3 - Temperatura_koeficijent: temperaturni gradijent vaše diode (bolje je preuzeti iz podatkovnog lista) 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

dvostruki V_OLD_0_C = 690,0; // 690 mV Naprijedni napon pri 0 Celzija pri ispitnoj struji od 4 mA

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 stupnju Celzijusa (-2,5 za germanijeve diode), bolje uzeti iz podatkovnog lista diode dvostruki VCC_Voltage = 5010,0; // Napon prisutan na 5V tračnici 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 višestruko pokretanje: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // dijelimo sa 4,0 ako koristite 12 -bitnu temperaturu ADC -a = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

Serijski.ispis (temperatura); Serial.println ("C");

kašnjenje (500);

}

Korak 3: Dobivanje boljih vrijednosti

Dobivanje boljih vrijednosti
Dobivanje boljih vrijednosti
Dobivanje boljih vrijednosti
Dobivanje 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 zamjetna greška u očitanjima koja mogu doseći 3 ili 4 stupnja Celzija, pa odakle dolazi ta pogreška?

1 - možda ćete morati prilagoditi varijable spomenute 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) previsok je za ovu malu promjenu napona na diodi

Dakle, ako ćete ovu postavku koristiti kao senzor temperature, morate biti svjesni da, iako je jeftino i zgodno, nije točno, ali vam može dati vrlo dobru predodžbu o temperaturi vašeg sustava, 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 najtočnije rezultate iz ove ideje, možete učiniti neke promjene:

1 - dodajte neka pojačanja i stupnjeve filtriranja pomoću op -pojačala kao na ovoj poveznici 2 - upotrijebite niži unutarnji 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 analognih pinova arduina.

ovaj redak možete dodati u funkciju postavljanja:

analogReference (INTERNO);

4 - Koristite mikrokontroler s ADC -om 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 sustava, ali ne tako točne rezultate (približno 4,88 mV/očitanje)

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

Pa to je to !!: D

Preporučeni: