const float BETA = 3950;
int Led_verde = 13; //Ponemos que el pin 13 tambien se llame "Led_verde"
int Led_rojo = 12; //Ponemos que el pin 12 tambien se llame "Led_rojo"
int Led_blanco = 11; //Ponemos que el pin 11 tambien se llame "Led_blanco"
const int Buzzer=A0; //Ponemos que el pin A0 tambien se llame "Buzzer"
void setup() {
Serial.begin(9600); //Se inicia
pinMode(13, OUTPUT); //Declaramos el pinmode 13 para el led
pinMode(12, OUTPUT); //Declaramos el pinmode 12 para el led
pinMode(11, OUTPUT); //Declaramos el pinmode 11 para el led
}
void loop() {
for (int x=0; x<=13; x++){
int analogValue = analogRead(A1);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.16) - 273.15; //Calcula los grados del NTC
digitalWrite(Led_blanco, HIGH); //El led blanco se enciende
delay(200); //Tiempo en milisegundos en el que se enciende el led
digitalWrite(Led_blanco, LOW); //El led blanco se apaga
delay(200); //Tiempo en milisegundos en el que se apaga el led
if (celsius < 45) { //Si el led verde esta a menos de 45ºC se iluminara parpadeando
digitalWrite(Led_verde, HIGH); //Se enciende el led verde
delay(200); //Tiempo en el que se enciende el led
Serial.print("Temperatura estable: "); //Introducimos el texto "Temperatura"
Serial.print(celsius); //Indicamos el numero de grados que ha calculado en la terminal
Serial.println(" ℃"); //Introducimos el texto "ºC"
digitalWrite(Led_verde, LOW); //Se apaga el led verde
delay(200); //Tiempo en el que se apaga el led verde
}
else if (celsius <-20 && celsius> 45) { //Si el led verde esta a menos de 45ºC se iluminara parpadeando
Serial.print("Temperatura estable: "); //Introducimos el texto "Temperatura"
Serial.print(celsius); //Indicamos el numero de grados que ha calculado en la terminal
Serial.println(" ℃"); //Introducimos el texto "ºC"
}
if (celsius < -24) {
Serial.print("¡¡¡Temperatura excesivamente BAJA!!!"); //Introducimos el texto "Temperatura"
Serial.print(celsius); //Indicamos el numero de grados que ha calculado en la terminal
Serial.println(" ℃"); //Introducimos el texto "ºC"
}
if (celsius > 45){ //Si el led rojo esta a mas de 45ºC se iluminara parpadeando
digitalWrite(Led_rojo, HIGH); //Se enciende el led rojo
delay(200); //Tiempo en el que se enciende el led
tone(Buzzer, 1024, 200); //El Buzzer suena a 1.024 Hz durante 200 milisegundos
Serial.print("⚠EXCESO DE TEMPERATURA⚠: "); //Introduciremos el texto "⚠EXCESO DE TEMPERATURA⚠: "
Serial.print(celsius); //Indicamos el numero de grados que ha calculado en la terminal
Serial.println(" ℃"); //Introducimos el texto "ºC"
digitalWrite(Led_rojo, LOW); //Se apaga el led rojo
delay(200); //Tiempo en el que se apaga el led rojo
}
}
}