Taula de continguts:

Sensor de temperatura de bricolatge amb un díode: 3 passos
Sensor de temperatura de bricolatge amb un díode: 3 passos

Vídeo: Sensor de temperatura de bricolatge amb un díode: 3 passos

Vídeo: Sensor de temperatura de bricolatge amb un díode: 3 passos
Vídeo: Вентиляция в хрущевке. Как сделать? Переделка хрущевки от А до Я. #31 2024, Desembre
Anonim
Sensor de temperatura de bricolatge amb un díode
Sensor de temperatura de bricolatge amb un díode
Sensor de temperatura de bricolatge amb un díode
Sensor de temperatura de bricolatge amb un díode

Així doncs, com un dels fets sobre les unions PN és que la seva caiguda de tensió directa canvia segons el corrent de pas i la temperatura de la unió, ho farem servir per fabricar un senzill sensor de temperatura barat.

Aquesta configuració s'utilitza habitualment en molts circuits integrats per mesurar la seva temperatura interna i molts sensors de temperatura com el famós LM35 que es basa en aquesta propietat.

Simplement, la caiguda de tensió directa d’un díode (que és una única unió PN) canvia a mesura que canvia la quantitat de corrent que el travessa, també a mesura que canvia la temperatura del díode, la caiguda de voltatge canviarà (A mesura que augmenta la temperatura, la la caiguda disminueix en un valor de (1,0 milliVolts a 2,0 milliVolts per a díodes de silici i 2,5 milliVolts per a díodes de germani).

Així, passant un corrent constant pel díode, la caiguda de tensió directa ara només hauria de variar segons la temperatura del díode. Només cal que mesurem la tensió directa del díode, apliqueu algunes equacions simples i voilà, aquí teniu el sensor de temperatura.

Subministraments

1 - 1n4007 díode # 12 - resistència 1 Kohm # 13 - placa Arduino

Pas 1: diagrama del circuit

Esquema de connexions
Esquema de connexions

Com podeu veure a l'esquema, és molt senzill. en connectar el díode en sèrie amb una resistència limitant el corrent i una font de tensió estable, podem obtenir una font de corrent constant bruta, de manera que la tensió mesurada a través del díode només variarà a causa del canvi de temperatura. Assegureu-vos que el valor de la resistència no sigui massa baix que passa molt de corrent pel díode i produeix un autocalentament notable al díode, tampoc és una resistència molt alta, de manera que el pas de corrent no és suficient per mantenir una relació lineal entre la tensió directa i la temperatura.

una resistència d'1 kilo Ohm amb una font de 5 V hauria de donar lloc a un corrent de díode de 4 milliAmpere que és un valor suficient per a aquest propòsit. I (díode) = VCC / (Rseries + Rdiode)

Pas 2: Codificació

Hem de tenir en compte que hi ha alguns valors a modificar en el codi per obtenir els millors resultats com:

1 - VCC_Voltage: com que el valor analogRead () depèn del VCC del xip ATmega, hem d'afegir-lo a l'equació després de mesurar-lo a la placa arduino.

2 - V_OLD_0_C: la caiguda de tensió directa del díode utilitzat a un corrent de 4 mA i una temperatura de 0 Celsius

3 - Temperatura_Coeficient: el gradient de temperatura del díode (millor obtenir del full de dades) o el podeu mesurar mitjançant aquesta equació: Vnew - Vold = K (Tnew - Told)

on:

Vnew = caiguda de tensió acabada de mesurar després d'escalfar el díode

Vold = caiguda de tensió mesurada a alguna temperatura ambient

Tnew = la temperatura a la qual es va escalfar el díode

Dit = temperatura vella a la qual es mesurava Vold

K = Temperatura_Coeficient (un valor negatiu que varia entre -1,0 a -2,5 milliVolts) Finalment, ara podeu penjar el codi i obtenir els resultats de temperatura.

#define Sens_Pin A0 // PA0 per a la placa STM32F103C8

doble V_OLD_0_C = 690,0; // 690 mV Tensió directa a 0 Celsius a 4 mA de corrent de prova

doble V_NEW = 0; // Nova tensió directa a temperatura ambient a 4 mA corrent de prova doble temperatura = 0,0; // Temperatura calculada a l’habitació doble Temperatura_Coeficient = -1,6; //-1,6 mV de canvi per grau Celsius (-2,5 per als díodes de germani), millor obtenir del full de dades del díode doble VCC_Voltage = 5010,0; // Voltatge present al carril de 5V de l’arduino en milliVolts (necessari per a una millor precisió) (3300,0 per a stm32)

configuració nul·la () {

// posa el teu codi de configuració aquí, per executar-lo una vegada: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

bucle buit () {

// poseu aquí el vostre codi principal per executar-lo repetidament: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // divideix per 4.0 si utilitzeu una temperatura ADC de 12 bits = ((V_NEW - V_OLD_0_C) / Temperature_Coefficient);

Serial.print ("Temp =");

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

retard (500);

}

Pas 3: Obtenir millors valors

Obtenir millors valors
Obtenir millors valors
Obtenir millors valors
Obtenir millors valors

Crec que és aconsellable tenir un dispositiu de mesura de temperatura de confiança al vostre costat quan feu aquest projecte.

podeu veure que hi ha un error notable en les lectures que pot arribar a 3 o 4 graus centígrads, així que d’on prové aquest error?

1: potser haureu de modificar les variables esmentades al pas anterior

2 - la resolució ADC de l'arduino és inferior a la que necessitem per detectar la petita diferència de tensió

3 - La referència de tensió de l'arduino (5V) és massa alta per a aquest petit canvi de tensió a través del díode

Per tant, si utilitzeu aquesta configuració com a sensor de temperatura, haureu de tenir en compte que, tot i que és barat i útil, no és precís, però us pot donar una bona idea sobre la temperatura del vostre sistema, ja sigui PCB o muntat al motor en funcionament, etc.

Aquesta instrucció està pensada per utilitzar la menor quantitat de components possible, però si voleu obtenir els resultats més precisos d'aquesta idea, podeu fer alguns canvis:

1 - afegiu algunes amplificacions i etapes de filtratge utilitzant amplificadors operatius com en aquest enllaç 2 - utilitzeu un controlador de referència analògic intern inferior com les plaques STM32F103C8 amb voltatge de referència analògic de 3,3 volts (vegeu el punt 4) 3 - utilitzeu la referència analògica interna d’1,1 V a la arduino, però tingueu en compte que no podeu connectar més d'1,1 volts a cap dels pins analògics arduino.

podeu afegir aquesta línia a la funció de configuració:

analogReference (INTERN);

4 - Utilitzeu un microcontrolador que tingui una resolució ADC més alta com STM32F103C8 que tingui una resolució ADC de 12 bits. Així, en poques paraules, aquesta configuració basada en arduino pot proporcionar una bona visió general de la temperatura del vostre sistema, però uns resultats no tan precisos (aproximadament 4,88 mV / lectura)

la configuració STM32F103C8 us donarà un resultat bastant precís ja que té un ADC de 12 bits més alt i un valor de referència analògic de 3,3 V inferior (aproximadament 0,8 mV / lectura)

Bé, ja està !!: D

Recomanat: