Termómetro digital.
En este proyecto lo que he hecho es un termómetro digital con arduino. El control de la Ntc lo he hecho con el siguiente esquema:
Y aquí os dejo un vídeo de como son los cálculos para controlar el voltaje de la salida del TL084 con las resistencias.
Y el código con el que he hecho el programa es el siguiente; en este tambien hay que tener en cuneta los valores de la NTC a 0ºC y a 25ºC:
#include <math.h>
//Pines para las entradas analógicas
int analogPin1 = A0;
//Variable PARA la temperatura de disparo
double tempMin = 0.0;
//DATOS para las ecuaciones
float Vin = 5.0; // [V] Tensión alimentación del divisor
float Rfija = 12000; // [ohm] Resistencia fija del divisor
float R25 = 4700; // [ohm] Valor de NTC a 25ºC
float Beta = 3900.0; // [K] Parámetro Beta de NTC
float T0 = 293.15; // [K] Temperatura de referencia en Kelvin
float Vout = 0.0; // [V] Variable para almacenar Vout
float Rntc = 0.0; // [ohm] Variable para NTC en ohmnios
float TempK = 0.0; // [K] Temperatura salida en Kelvin
float TempC = 0.0; // [ºC] Temperatura salida en Celsius
void setup() {
//Comenzamos la comunicación puerto serie
Serial.begin(9600);
//Y los pines de entrada
pinMode(analogPin1, INPUT);
}
void loop()
{
Vout=(Vin/1024)*(analogRead(analogPin1));
Serial.println(analogPin1);
Serial.println(Vout);
//Ahora la resistencia de la NTC
Rntc=(Vout*Rfija)/(Vin-Vout);
Serial.println(Rntc);
//Y por último la temperatura en Kelvin
TempK = Beta/(log(R25/Rntc)+(Beta/T0));
//Y ahora la pasamos a celsius
TempC = TempK-273.15;
if (TempC<=0){
TempC=0.0;
}
//Y lo mostramos por puerto serie
Serial.println();
Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
Serial.print(TempC);
Serial.println(" GRADOS CELSIUS");
Serial.println();
//Un pequeño delay PARA no volver loco al puerto serie
delay(1000);
}
No hay comentarios:
Publicar un comentario