Innholdsfortegnelse:
Video: DIY temperatursensor ved bruk av en diode: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Så som et av fakta om PN-veikryss er at spenningsfallet deres fremover endres i henhold til passerende strøm og til kryssstemperaturen også, skal vi bruke dette til å lage en enkel billig temperatursensor.
Dette oppsettet brukes ofte i mange integrerte kretser for å måle den interne temperaturen og mange temperatursensorer som den berømte LM35 som er basert på denne egenskapen.
Rett og slett fremspenningsfallet til en diode (som er et enkelt PN-kryss) endres etter hvert som strømmen som passerer gjennom det endres, også når diodetemperaturen endres, vil spenningsfallet endres (Når temperaturen øker, vil fremover fall reduseres med en verdi på (1,0 milliVolt til 2,0 milliVolt for silisiumdioder og 2,5 milliVolt for germaniumdioder).
Så ved å føre en konstant strøm gjennom dioden, bør fremspenningsfallet nå bare variere i henhold til diodetemperaturen. Vi trenger bare å måle diodenes fremspenning, bruk noen enkle ligninger og voilà her er temperatursensoren din !!!
Rekvisita
1 - 1n4007 diode #12 - 1 Kohm -motstand #13 - Arduino -kort
Trinn 1: Kretsdiagram
Som du kan se i skjematikken er det veldig enkelt. ved å koble dioden i serie med en strømbegrensende motstand og en stabil spenningskilde kan vi få en rå konstant strømkilde, så den målte spenningen over dioden vil bare variere på grunn av temperaturendringen. Sørg for at motstandsverdien ikke er for lav at mye strøm passerer gjennom dioden og gjør en merkbar selvoppvarming i dioden, heller ikke en veldig høy motstand, så strømmen som passerer er ikke nok til å opprettholde et lineært forhold mellom fremspenningen og temperaturen.
en 1 kilo Ohm motstand med en 5V forsyning bør resultere i en 4 milliAmpere diodestrøm som er en tilstrekkelig verdi for dette formålet. I (diode) = VCC / (Rseries + Rdiode)
Trinn 2: Koding
Vi må huske på at det er noen verdier å justere i koden for å få de bedre resultatene som:
1 - VCC_Voltage: ettersom analogRead () -verdien avhenger av Vmc på ATmega -brikken, må vi legge den til ligningen etter å ha målt den på arduino -kortet.
2 - V_OLD_0_C: fremspenningsfallet til den brukte dioden ved en strøm på 4 mA og temperaturen på 0 Celsius
3 - Temperature_Coefficient: temperaturgradienten til dioden din (bedre å hente fra databladet), eller du kan måle den ved å bruke denne ligningen: Ny - Vold = K (Ny - Fortalt)
hvor:
Ny = nymålt fallspenning etter oppvarming av dioden
Vold = målt fallspenning ved noen romtemperatur
Ny = temperaturen der dioden ble oppvarmet til
Fortalt = den gamle romtemperaturen som Vold ble målt til
K = Temperature_Coefficient (en negativ verdi som varierer mellom -1,0 til -2,5 milliVolt) Endelig kan du nå laste opp koden og få temperaturresultatene.
#define Sens_Pin A0 // PA0 for STM32F103C8 -kort
dobbel V_OLD_0_C = 690,0; // 690 mV Spenning fremover ved 0 Celsius ved 4 mA teststrøm
dobbel V_NEW = 0; // Ny spenning fremover ved romtemperatur ved 4 mA teststrøm dobbel Temperatur = 0,0; // Romberegnet temperatur dobbelt Temperatur_Koeffisient = -1,6; //-1,6 mV endring per grad Celsius (-2,5 for germaniumdioder), bedre å få fra diodedatabladet dobbel VCC_Voltage = 5010,0; // Spenning tilstede på 5V -skinnen til arduinoen i milliVolt (kreves for bedre nøyaktighet) (3300.0 for stm32)
ugyldig oppsett () {
// legg oppsettskoden her for å kjøre en gang: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }
void loop () {
// legg hovedkoden din her for å kjøre gjentatte ganger: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // divider med 4,0 hvis du bruker en 12 -biters ADC -temperatur = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);
Serial.print ("Temp =");
Serial.print (temperatur); Serial.println ("C");
forsinkelse (500);
}
Trinn 3: Få bedre verdier
Jeg tror det er lurt å ha en pålitelig temperaturmåler ved siden av deg når du gjør dette prosjektet.
du kan se at det er en merkbar feil i avlesningene som kan komme til 3 eller 4 grader Celsius, så hvor kommer denne feilen fra?
1 - du må kanskje justere variablene nevnt i forrige trinn
2 - ADC -oppløsningen til arduinoen er lavere enn det vi trenger for å oppdage den lille spenningsforskjellen
3 - spenningsreferansen til arduinoen (5V) er for høy for denne lille spenningsendringen over dioden
Så hvis du skal bruke dette oppsettet som en temperatursensor, bør du være oppmerksom på at selv om det er billig og praktisk, er det ikke nøyaktig, men det kan gi deg en veldig god ide om temperaturen på systemet ditt, enten er det på en PCB eller montert på motor som kjører osv …
Denne instruksjonsboken er ment å bruke minst mulig komponenter, men hvis du vil få de mest nøyaktige resultatene fra denne ideen, kan du gjøre noen endringer:
1 - legg til noen forsterkninger og filtreringstrinn ved hjelp av op -ampere som i denne lenken2 - bruk en lavere intern analog referansekontroller som STM32F103C8 -kortene med 3,3 volt analog referansespenning (se punkt 4) 3 - bruk den interne 1,1 V analoge referansen i arduino, men vær oppmerksom på at du ikke kan koble mer enn 1,1 volt til noen av de arduino analoge pinnene.
du kan legge til denne linjen i oppsettfunksjonen:
analogReference (INTERNAL);
4 - Bruk en mikrokontroller som har høyere oppløsning ADC som STM32F103C8 som har en 12 -biters ADC -oppløsning Så i et nøtteskall kan dette arduino -baserte oppsettet gi en fin oversikt over systemets temperatur, men ikke så nøyaktige resultater (ca. 4,88 mV/avlesning)
STM32F103C8-oppsettet vil gi deg et ganske nøyaktig resultat, ettersom det har en høyere 12-bits ADC og en lavere 3.3V analog referanseverdi (ca. 0,8 mV/avlesning)
Vel, det er det !!: D
Anbefalt:
TMP36 temperatursensor og LCD -skjerm ved bruk av Arduino (Tinkercad): 7 trinn
TMP36 temperatursensor og LCD -skjerm ved bruk av Arduino (Tinkercad): Hei alle sammen! Vi er studenter fra University Tun Hussein Onn Malaysia (UTHM) som gjennomfører et prosjekt for å demonstrere hvordan vi kan simulere en temperatursensor, en LCD og en Arduino som bruker Tinkercad som en del av læreplanen vår for UQD0801 (Robocon 1) (
Avlesningstemperatur ved bruk av LM35 temperatursensor med Arduino Uno: 4 trinn
Lesing av temperatur ved bruk av LM35 temperatursensor med Arduino Uno: Hei folkens i denne instruksen, vi lærer hvordan du bruker LM35 med Arduino. Lm35 er en temperatursensor som kan lese temperaturverdier fra -55 ° C til 150 ° C. Det er en 3-terminal enhet som gir analog spenning proporsjonal med temperaturen. Høy
Temperatursensor ved bruk av termistor med Arduino Uno: 4 trinn
Temperatursensor ved bruk av termistor med Arduino Uno: Hei Gutter i denne instruksjonene lærer vi hvordan du bruker termistor med Arduino. Termistor er i utgangspunktet en motstand hvis motstand varierer med variasjon i temperatur. Så vi kan lese dens motstand og få temperaturen fra den & Termistor i
Komme i gang med AWS IoT Med trådløs temperatursensor ved bruk av MQTT: 8 trinn
Komme i gang med AWS IoT Med trådløs temperatursensor ved bruk av MQTT: I tidligere instrukser har vi gått gjennom forskjellige skyplattformer som Azure, Ubidots, ThingSpeak, Losant etc. Vi har brukt MQTT -protokollen for å sende sensordata til skyen i nesten hele skyplattformen. For mer informasjon
DIY temperatursensor ved bruk av Arduino og LM 35 Enkel: 5 trinn
DIY temperatursensor ved bruk av Arduino og LM 35 Enkel: Hei venner, I dag skal vi bygge en temperaturmålesensorkrets rundt Arduino UNO mikrokontroller ved hjelp av en sensor LM35. Så la oss komme i gang uten å kaste bort tiden