INHOUDSOPGAWE:
Video: DIY temperatuursensor met een diode: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
As een van die feite oor PN-aansluitings is dat hul spanningsval na vore verander volgens die verbygaande stroom en die aansluitingstemperatuur, ons gaan dit gebruik om 'n eenvoudige goedkoop temperatuursensor te maak.
Hierdie opstelling word algemeen gebruik in baie geïntegreerde kringe om die interne temperatuur en baie temperatuursensors te meet, as die beroemde LM35 wat op hierdie eienskap gebaseer is.
Die voorwaartse spanningsval van 'n diode (wat 'n enkele PN-aansluiting is) verander namate die hoeveelheid stroom wat daardeur beweeg, verander, ook as die temperatuur van die diode verander, sal die spanningsval verander (namate die temperatuur toeneem, sal die vorentoe daling neem af met 'n waarde van (1,0 milliVolts tot 2,0 milliVolts vir silikon diodes en 2,5 milliVolts vir germanium diodes).
Dus, deur 'n konstante stroom deur die diode te laat beweeg, moet die daling van die voorwaartse spanning nou slegs wissel volgens die temperatuur van die diode.
Voorrade
1 - 1n4007 diode #12 - 1 Kohm -weerstand #13 - Arduino -bord
Stap 1: Kringdiagram
Soos u in die skema kan sien, is dit baie eenvoudig. Deur die diode in serie te verbind met 'n stroombeperkende weerstand en 'n stabiele spanningsbron, kan ons 'n ru -konstante stroombron verkry, sodat die gemete spanning oor die diode slegs sal wissel as gevolg van die temperatuurverandering. te laag dat daar baie stroom deur die diode gaan en 'n merkbare selfverhitting in die diode maak, ook nie 'n baie hoë weerstand nie, sodat die stroom wat verbygaan nie genoeg is om 'n lineêre verhouding tussen die voorwaartse spanning en die temperatuur te handhaaf nie.
'n Ohmweerstand van 1 kilo met 'n 5V -toevoer behoort 'n diode van 4 milliAmpere tot gevolg te hê, wat 'n voldoende waarde vir hierdie doel is. I (diode) = VCC / (Rseries + Rdiode)
Stap 2: Kodering
Ons moet in gedagte hou dat daar in die kode 'n paar waardes is om die beter resultate te kry, soos:
1 - VCC_Voltage: aangesien die analogRead () -waarde afhang van die VCC van die ATmega -chip, moet ons dit by die vergelyking voeg nadat ons dit op die arduino -bord gemeet het.
2 - V_OLD_0_C: die voorwaartse spanningsval van die gebruikte diode teen 'n stroom van 4 mA en 'n temperatuur van 0 Celsius
3 - Temperatuur_koëffisiënt: die temperatuurgradiënt van u diode (beter om van die datablad af te haal) of u kan dit meet met behulp van hierdie vergelyking: Vneu - Vold = K (Tew - Told)
waar:
Nuut = nuut gemete drukspanning na verhitting van die diode
Vold = gemeten drukspanning by kamertemperatuur
Nuwe = die temperatuur waarna die diode verhit is
Vertel = die ou kamertemperatuur waarby Vold gemeet is
K = Temperature_Coefficient ('n negatiewe waarde wat wissel tussen -1.0 tot -2.5 milliVolt) Uiteindelik kan u die kode nou oplaai en u temperatuurresultate kry.
#define Sens_Pin A0 // PA0 vir STM32F103C8 -bord
dubbel V_OLD_0_C = 690,0; // 690 mV Voorspanning by 0 Celsius by 4 mA toetsstroom
dubbel V_NEW = 0; // Nuwe voorspanning by kamertemperatuur by 4 mA toetsstroom dubbel Temperatuur = 0,0; // Kamer berekende temperatuur dubbel Temperature_Coefficient = -1.6; //-1.6 mV verandering per graad Celsius (-2.5 vir germanium diodes), beter om uit die diode datablad dubbel VCC_Voltage = 5010.0 te kry; // Spanning teenwoordig by die 5V -spoor van die arduino in milliVolt (benodig vir beter akkuraatheid) (3300.0 vir stm32)
ongeldige opstelling () {
// sit u opstellingskode hier om een keer te hardloop: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }
leemte -lus () {
// sit u hoofkode hier om herhaaldelik te hardloop: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // deel met 4,0 as u 'n 12 -bits ADC -temperatuur gebruik = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);
Serial.print ("Temp =");
Reeks.afdruk (temperatuur); Serial.println ("C");
vertraging (500);
}
Stap 3: Kry beter waardes
Ek dink dit is raadsaam om 'n betroubare temperatuurmeetapparaat by u te hê wanneer u hierdie projek doen.
u kan sien dat daar 'n merkbare fout is by die metings wat tot 3 of 4 grade Celsius kan kom, so waar kom die fout vandaan?
1 - u moet moontlik die veranderlikes wat in die vorige stap genoem is, aanpas
2 - die ADC -resolusie van die arduino is laer as wat ons nodig het om die klein spanningsverskil op te spoor
3 - die spanningsverwysing van die arduino (5V) is te hoog vir hierdie klein spanningsverandering oor die diode
As u hierdie opstelling as 'n temperatuursensor gaan gebruik, moet u egter weet dat dit goedkoop en handig is, maar dit is nie akkuraat nie, maar dit kan u 'n baie goeie idee gee van die temperatuur van u stelsel. PCB of gemonteer op motor wat loop, ens …
Hierdie instruksies is bedoel om die minste moontlike komponente te gebruik, maar as u die akkuraatste resultate van hierdie idee wil verkry, kan u 'n paar veranderinge aanbring:
1 - voeg 'n paar versterkings en filterfases by met op -ampère soos in hierdie skakel2 - gebruik 'n laer interne analoge verwysingsbeheerder as die STM32F103C8 -borde met 3.3 Volt analoog verwysingspanning (sien punt 4) 3 - gebruik die interne 1.1 V analoge verwysing in die arduino, maar wees bewus daarvan dat u nie meer as 1,1 Volt aan enige van die arduino analoog penne kan koppel nie.
u kan hierdie reël byvoeg in die opstelfunksie:
analogReference (INTERNE);
4 - Gebruik 'n mikrobeheerder met 'n hoër resolusie ADC as STM32F103C8 met 'n 12 -bits ADC -resolusie So in 'n neutedop kan hierdie op arduino gebaseerde opstelling 'n goeie oorsig gee van die temperatuur van u stelsel, maar nie so akkurate resultate nie (ongeveer 4,88 mV/lees)
die opstelling van STM32F103C8 sal u 'n redelik akkurate resultaat gee, aangesien dit 'n hoër 12-bis ADC en 'n laer analoog verwysingswaarde van 3.3V (ongeveer 0.8 mV/lesing) het
Wel, dit is dit !!: D
Aanbeveel:
Leestemperatuur met behulp van LM35 -temperatuursensor met Arduino Uno: 4 stappe
Lees temperatuur van LM35 met temperatuursensor met Arduino Uno: Hallo ouens in hierdie instruksies, ons leer hoe om LM35 met Arduino te gebruik. Lm35 is 'n temperatuursensor wat temperatuurwaardes van -55 ° C tot 150 ° C kan aflees. Dit is 'n 3-terminale toestel wat analoog spanning bied wat eweredig is aan die temperatuur. Hoë
Temperatuursensor met behulp van termistor met Arduino Uno: 4 stappe
Temperatuursensor wat thermistor gebruik met Arduino Uno: Hallo ouens in hierdie instruksies, leer ons hoe om Thermistor met Arduino te gebruik. Thermistor is basies 'n weerstand waarvan die weerstand wissel met die variasie in temperatuur. Ons kan dus die weerstand daarvan lees en die temperatuur daaruit kry & Termistor in
Aan die gang met AWS IoT Met draadlose temperatuursensor met behulp van MQTT: 8 stappe
Aan die gang met AWS IoT Met draadlose temperatuursensor met behulp van MQTT: In vorige instruksies het ons verskillende wolkplatforms soos Azure, Ubidots, ThingSpeak, Losant, ens. Deurgegaan. al die wolkplatform. Vir meer inligting
IoT -temperatuursensor met ESP8266: 6 stappe (met foto's)
IoT Temperatuur Sensor Met ESP8266: Ek is geïnspireer om 'n temperatuursensor te skep wat ek via wifi kan monitor. Hierdie projek is nie nuut nie, maar ek hou van die idee om 'n intermediêre laag vir beveiliging te hê en om nie die poort in u router na u IoT -toestel te hoef oop te maak nie
SENSOR SUHU DENGAN LCD DAN LED (maak temperatuursensor met LCD en LED): 6 stappe (met foto's)
SENSOR SUHU DENGAN LCD DAN LED (vervaardiging van temperatuursensor met LCD en LED): hier kan u 'n universele ontvanger van die Universiteit en die Verenigde State van Amerika gebruik. Ons kan ook hierdie e -posadres gebruik, en die sensor in