Sisukord:

DIY temperatuuriandur ühe dioodi abil: 3 sammu
DIY temperatuuriandur ühe dioodi abil: 3 sammu

Video: DIY temperatuuriandur ühe dioodi abil: 3 sammu

Video: DIY temperatuuriandur ühe dioodi abil: 3 sammu
Video: САМАЯ УДАЧНАЯ версия генератора для бензиновой горелки!!! 2024, November
Anonim
DIY temperatuuriandur ühe dioodi abil
DIY temperatuuriandur ühe dioodi abil
DIY temperatuuriandur ühe dioodi abil
DIY temperatuuriandur ühe dioodi abil

Kuna üks faktidest PN-ristmike kohta on see, et nende ettepoole suunatud pingelangus muutub vastavalt läbivoolule ja ka ristmiku temperatuurile, kasutame seda lihtsa odava temperatuurianduri valmistamiseks.

Seda seadistust kasutatakse tavaliselt paljudes integraallülitustes, et mõõta selle sisetemperatuuri ja paljusid temperatuuriandureid, nagu sellel omadusel põhinevat kuulsat LM35.

Lihtsalt dioodi (mis on üks PN-ristmik) ettepoole suunatud pingelangus muutub seda läbiva vooluhulga muutudes, samuti kui dioodi temperatuur muutub, muutub ka pingelangus (temperatuuri tõustes muutub tilk väheneb väärtuse võrra (ränidioodide puhul 1,0 millivolti kuni 2,0 millivoltini ja germaaniumdioodide puhul 2,5 millivoltini).

Nii et dioodi kaudu pideva voolu juhtimisel peaks pingelangus nüüd muutuma ainult vastavalt dioodi temperatuurile. Nüüd peame lihtsalt mõõtma dioodi edasipinget, rakendama mõningaid lihtsaid võrrandeid ja siin on teie temperatuuriandur !!!

Tarvikud

1 - 1n4007 diood #12 - 1 Kohm takisti #13 - Arduino plaat

Samm: vooluahela skeem

Lülitusskeem
Lülitusskeem

Nagu skemaatiliselt näha, on see väga lihtne. ühendades dioodi järjestikku voolu piirava takisti ja stabiilse pingeallikaga, saame toornafta konstantse voolu allika, nii et dioodi mõõdetud pinge varieerub ainult temperatuurimuutuse tõttu. Veenduge, et takisti väärtus ei oleks liiga väike vool läbib dioodi ja tekitab dioodis märgatava isekuumenemise, samuti mitte väga kõrge takisti, nii et voolutugevus ei ole piisav, et säilitada pinge ja temperatuuri vahel lineaarset suhet.

1 kilo oomine 5 V toitega takisti peaks andma 4 milliamperi dioodivoolu, mis on selleks piisav väärtus. I (diood) = VCC / (Rseries + Rdiode)

2. samm: kodeerimine

Peame meeles pidama, et paremate tulemuste saamiseks tuleb koodis mõningaid väärtusi muuta, näiteks:

1 - VCC_Voltage: kuna analogRead () väärtus sõltub ATmega kiibi VCC -st, peame selle pärast arduino -plaadil mõõtmist võrrandisse lisama.

2 - V_OLD_0_C: kasutatud dioodi edasipingelangus voolul 4 mA ja temperatuuril 0 Celsiust

3 - Temperatuuri_koefitsient: teie dioodi temperatuurigradient (parem saada andmelehelt) või saate seda mõõta järgmise võrrandi abil: Vnew - Vold = K (Tnew - Told)

kus:

Vnew = äsja mõõdetud languspinge pärast dioodi kuumutamist

Vold = mõõdetud langemispinge teatud toatemperatuuril

Tnew = temperatuur, milleni dioodi kuumutati

Told = vana toatemperatuur, mille juures Voldit mõõdeti

K = Temperatuuri_koefitsient (negatiivne väärtus varieerub vahemikus -1,0 kuni -2,5 milliVolti) Lõpuks saate nüüd koodi üles laadida ja oma temperatuuri tulemused kätte saada.

#define Sens_Pin A0 // PA0 plaadi STM32F103C8 jaoks

kahekordne V_OLD_0_C = 690,0; // 690 mV Edasipinge 0 Celsiuse juures 4 mA testvoolul

kahekordne V_NEW = 0; // Uus edasipinge toatemperatuuril 4 mA testvoolul kahekordne Temperatuur = 0,0; // Ruumi arvutatud temperatuur topelt Temperatuuri_Koefitsient = -1,6; //-1,6 mV muutus Celsiuse kraadi kohta (-2,5 germaaniumi dioodide puhul), parem saada dioodi andmelehelt topelt VCC_Voltage = 5010,0; // Arduino 5 V rööpmel olev pinge millivoltides (parema täpsuse saavutamiseks vajalik) (3300,0 stm32 jaoks)

tühine seadistus () {

// pange oma seadistuskood siia, et üks kord käivitada: pinMode (Sens_Pin, INPUT); Seriaalne algus (9600); }

void loop () {

// pange oma põhikood siia, et seda korduvalt käitada: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024,0; // jagage 4,0 -ga, kui kasutate 12 -bitist ADC temperatuuri = (((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print ("Temp =");

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

viivitus (500);

}

3. samm: väärtuste parandamine

Paremate väärtuste saamine
Paremate väärtuste saamine
Paremate väärtuste saamine
Paremate väärtuste saamine

Arvan, et selle projekti tegemisel on soovitav, et teie kõrval oleks usaldusväärne temperatuuri mõõtmise seade.

näete, et näitudes on märgatav viga, mis võib tõusta 3 või 4 kraadini, nii et kust see viga pärineb?

1 - peate võib -olla eelmises etapis mainitud muutujaid kohandama

2 - arduino ADC eraldusvõime on madalam kui see, mida vajame väikese pinge erinevuse tuvastamiseks

3 - arduino (5V) pingeviide on selle dioodi väikese pingemuutuse jaoks liiga kõrge

Seega, kui kavatsete seda seadet kasutada temperatuuriandurina, peaksite teadma, et kuigi see on odav ja käepärane, pole see täpne, kuid see võib anda teile väga hea ettekujutuse teie süsteemi temperatuurist, kas see on Trükkplaat või paigaldatud töötavale mootorile jne …

See juhend on mõeldud kasutama võimalikult vähe komponente. Kuid kui soovite sellest ideest kõige täpsemaid tulemusi saada, saate teha mõningaid muudatusi:

1 - lisage mõned võimendused ja filtreerimisetapid, kasutades op -ampreid, nagu sellel lingil arduino, kuid pidage meeles, et te ei saa ühegi arduino analoogpistikuga ühendada rohkem kui 1,1 volti.

saate selle rea seadistusfunktsiooni lisada:

analogReference (INTERNAL);

4 - Kasutage kõrgema eraldusvõimega ADC -ga mikrokontrollerit kui STM32F103C8, millel on 12 -bitine ADC -resolutsioon. Lühidalt öeldes võib see arduino -põhine seadistus anda kena ülevaate teie süsteemi temperatuurist, kuid mitte nii täpsed tulemused (umbes 4,88 mV/näit)

STM32F103C8 seadistus annaks teile üsna täpse tulemuse, kuna sellel on kõrgem 12-bitine ADC ja madalam 3,3 V analoogviiteväärtus (umbes 0,8 mV/näit)

No nii ongi !!: D

Soovitan: