Kazalo:
Video: Temperaturni senzor DIY z eno diodo: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Eno od dejstev o PN-stičiščih je, da se njihov padec napetosti naprej spreminja glede na prehodni tok in tudi na temperaturo stičišča, to bomo uporabili za izdelavo preprostega poceni temperaturnega senzorja.
Ta nastavitev se običajno uporablja v številnih integriranih vezjih za merjenje njene notranje temperature in številnih temperaturnih senzorjev kot slavni LM35, ki temelji na tej lastnosti.
Preprosto padec napetosti naprej diode (ki je en sam PN-stik) se spreminja s spreminjanjem količine toka, ki teče skozi njo, prav tako pa se s spreminjanjem temperature diode padec napetosti spreminja (s povečanjem temperature se padec se zmanjša za vrednost (1,0 milivoltov na 2,0 milivoltov za silicijeve diode in 2,5 milivoltov za germanijeve diode).
Tako bi se s prehodom konstantnega toka skozi diodo sprednji padec napetosti moral spreminjati le glede na temperaturo diode. Zdaj moramo samo izmeriti napetost diode naprej, uporabiti nekaj preprostih enačb in voilà tukaj je vaš temperaturni senzor !!!
Zaloge
1 - 1n4007 dioda #12 - 1 Kohm upor #13 - plošča Arduino
1. korak: Shema vezja
Kot lahko vidite na shemi, je zelo preprosto. s serijsko povezavo diode s tokovno omejevalnim uporom in stabilnim virom napetosti lahko dobimo surov vir konstantnega toka, zato se bo izmerjena napetost na diodi spreminjala le zaradi temperaturne spremembe. Prepričajte se, da vrednost upora ni prenizko, da skozi diodo prehaja veliko toka in povzroči opazno samogrevanje diode, prav tako ni zelo visok upor, zato prehod toka ni dovolj za vzdrževanje linearnega razmerja med napetostjo naprej in temperaturo.
1 kilo ohmski upor z napajanjem 5 V bi moral povzročiti tok diode 4 miliAmpere, kar je za ta namen zadostna vrednost. I (dioda) = VCC / (Rseries + Rdiode)
2. korak: Kodiranje
Upoštevati moramo, da je treba v kodi spremeniti nekaj vrednosti, da dobimo boljše rezultate, kot so:
1 - VCC_Voltage: ker je vrednost analogRead () odvisna od VCC čipa ATmega, jo moramo dodati v enačbo po merjenju na arduino plošči.
2 - V_OLD_0_C: padec napetosti naprej uporabljene diode pri toku 4 mA in temperaturi 0 Celzija
3 - Temperatura_koeficient: temperaturni gradient vaše diode (bolje, da dobite iz podatkovnega lista) ali pa ga izmerite s to enačbo: Vnew - Vold = K (Tnew - Told)
kje:
Vnew = na novo izmerjena padna napetost po segrevanju diode
Vold = izmerjena padna napetost pri neki sobni temperaturi
Tnew = temperatura, pri kateri je bila dioda segreta
Told = stara sobna temperatura, pri kateri je bil Vold izmerjen
K = Temperaturni_koeficient (negativna vrednost se giblje med -1,0 do -2,5 miliVoltov) Končno lahko zdaj naložite kodo in dobite rezultate temperature.
#define Sens_Pin A0 // PA0 za ploščo STM32F103C8
dvojno V_OLD_0_C = 690,0; // 690 mV Napetost naprej pri 0 Celzija pri 4 mA preskusnem toku
dvojno V_NEW = 0; // Nova napetost naprej pri sobni temperaturi pri 4 mA preskusni tok dvojna temperatura = 0,0; // sobna izračunana temperatura dvojna Temperature_Coefficient = -1,6; //-1,6 mV sprememba na stopinjo Celzija (-2,5 za germanijeve diode), bolje dobiti iz podatkovnega lista diode dvojni VCC_Voltage = 5010,0; // Napetost, prisotna na 5V tirnici arduina v miliVoltih (potrebno za večjo natančnost) (3300.0 za stm32)
void setup () {
// tukaj vstavite nastavitveno kodo, ki jo želite zagnati enkrat: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }
void loop () {
// vnesite svojo glavno kodo sem, da se večkrat zažene: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // delite s 4,0, če uporabljate 12 -bitno temperaturo ADC = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);
Serial.print ("Temp =");
Serial.print (temperatura); Serial.println ("C");
zamuda (500);
}
Korak: Pridobite boljše vrednosti
Mislim, da je pri tem projektu priporočljivo imeti poleg sebe zaupanja vredno napravo za merjenje temperature.
vidite, da je pri odčitkih opazna napaka, ki lahko doseže 3 ali 4 stopinje Celzija, od kod prihaja ta napaka?
1 - morda boste morali spremeniti spremenljivke, omenjene v prejšnjem koraku
2 - ločljivost ADC -ja arduina je nižja od tiste, ki jo potrebujemo za zaznavanje majhne napetostne razlike
3 - referenčna napetost arduina (5V) je previsoka za to majhno spremembo napetosti na diodi
Torej, če boste to nastavitev uporabljali kot temperaturni senzor, se morate zavedati, da čeprav je poceni in priročen, ni natančen, vendar vam lahko zelo dobro predstavi temperaturo vašega sistema, bodisi da je na Tiskana vezja ali pritrjena na delujoči motor itd …
Ta pouk naj bi uporabil najmanjšo možno količino komponent, če pa želite iz te ideje dobiti najbolj natančne rezultate, lahko naredite nekaj sprememb:
1 - dodajte nekaj ojačitev in filtrirnih stopenj z uporabo op -ojačevalnikov, kot je na tej povezavi 2 - uporabite nižji notranji analogni referenčni krmilnik kot plošče STM32F103C8 s 3,3 V analogno referenčno napetostjo (glejte točko 4) 3 - uporabite interno 1,1 V analogno referenco v arduino, vendar se zavedajte, da na noben analogni zatič arduino ne morete priključiti več kot 1,1 volta.
to vrstico lahko dodate v nastavitveno funkcijo:
analogna referenca (NOTRANJA);
4 - Uporabite mikrokrmilnik, ki ima ADC višje ločljivosti kot STM32F103C8, ki ima 12 -bitno ločljivost ADC -ja Tako lahko na kratko ta nastavitev, ki temelji na arduinu, daje lep pregled nad temperaturo vašega sistema, vendar ne tako natančne rezultate (približno 4,88 mV/odčitek)
nastavitev STM32F103C8 bi vam dala precej natančen rezultat, saj ima višji 12-bitni ADC in nižjo analogno referenčno vrednost 3,3 V (približno 0,8 mV/branje)
No, to je to !!: D
Priporočena:
Arduino Nano - SI7050 Temperaturni senzor Vadnica: 4 koraki
Arduino Nano - SI7050 Temperaturni senzor Vadnica: SI7050 je digitalni temperaturni senzor, ki deluje po komunikacijskem protokolu I2C in ponuja visoko natančnost v celotnem območju delovne napetosti in temperature. To visoko natančnost senzorja pripisujejo novi obdelavi signala in analni
Arduino Nano - TCN75A Temperaturni senzor Vadnica: 4 koraki
Arduino Nano-TCN75A Temperaturni senzor Vadnica: TCN75A je dvožični serijski temperaturni senzor, vgrajen s pretvornikom temperature v digitalni. Vključen je v registre, ki jih lahko programira uporabnik in ki omogočajo prilagodljivost pri aplikacijah za zaznavanje temperature. Nastavitve registra uporabnikom omogočajo
Arduino Nano - STS21 Temperaturni senzor Vadnica: 4 koraki
Arduino Nano - STS21 Temperaturni senzor Vadnica: Digitalni temperaturni senzor STS21 ponuja vrhunske zmogljivosti in prihrani prostor. Zagotavlja umerjene, linearizirane signale v digitalnem formatu I2C. Izdelava tega senzorja temelji na CMOSens tehnologiji, ki pripisuje vrhunski
Arduino Nano - TMP100 Temperaturni senzor Vadnica: 4 koraki
Arduino Nano-TMP100 Temperaturni senzor Vadnica: TMP100 Visoko natančen, nizkoenergijski, digitalni temperaturni senzor I2C MINI modul. TMP100 je idealen za daljše merjenje temperature. Ta naprava ponuja natančnost ± 1 ° C brez kalibracije ali prilagajanja signala zunanjih komponent. On
Vadnica: Kako narediti preprost temperaturni senzor z uporabo DS18B20 in Arduino UNO: 3 koraki
Vadnica: Kako narediti preprost temperaturni senzor z uporabo DS18B20 in Arduino UNO: Opis: Ta vadnica vam bo pokazala nekaj preprostih korakov, kako narediti senzor temperature funkcionalen. Za uresničitev vašega projekta potrebujete le nekaj minut. Vso srečo ! Digitalni termometer DS18B20 zagotavlja temperaturo od 9 do 12 bitov Celzija