/*
* Leitura de temperatura usando um termistor
*/
// Conexão do termistor
int valor = 0;
int ledRed = 2;
int ledGreen = 12;
const int pinTermistor = A0;
// Parâmetros do termistor
const double beta = 3600.0;
const double r0 = 10000.0;
const double t0 = 273.0 + 25.0;
const double rx = r0 * exp(-beta/t0);
// Parâmetros do circuito
const double vcc = 5.0;
const double R = 20000.0;
// Numero de amostras na leitura
const int nAmostras = 5;
// Iniciação
void setup() {
pinMode(ledRed,OUTPUT);
pinMode(ledGreen,OUTPUT);
Serial.begin(9600);
}
// Laço perpétuo
void loop() {
// Le o sensor algumas vezes
int soma = 0;
for (int i = 0; i < nAmostras; i++) {
soma += analogRead(pinTermistor);
delay (10);
}
// Determina a resistência do termistor
double v = (vcc*soma)/(nAmostras*1024.0);
double rt = (vcc*R)/v - R;
// Calcula a temperatura
double t = beta / log(rt/rx);
Serial.println ((t-273.0)*1.0946);
valor = ((t-273.0)*1.0946);
if(valor >= 33.00){
digitalWrite(ledRed,HIGH);
digitalWrite(ledGreen,LOW);
}else{
digitalWrite(ledRed,LOW);
digitalWrite(ledGreen,HIGH);
}
delay(750);
}