int led_green = 11;
//led que indicará que la temperatura es correcta
int led_white = 13;
//led que indicará que la transferencia de temperatura
//es correcta
float valor = 0;
//creamos la variable valor para leer el valor de temp
int temp = A0;
//temp contendrá el valor de temperatura del sensor
int grados = 0;
//creamos la variable grados para almacenar el valor de
//temperatura pero en ºC
const float BETA = 3950;
//lo utilizamos para hacer la operación de conversión a ºC
void setup() {
Serial.begin(9600);
//activamos el monitor serie
pinMode (led_green, OUTPUT);
//ponemos el led verde en modo salida
pinMode (led_white, OUTPUT);
//ponemos el led blanco en modo salida
}
void loop() {
valor = analogRead(temp);
//leemos y guardamos en "valor" la temperatura que
//recibimos en temp
grados = 1 / (log(1 / (1023. / valor - 1)) / BETA + 1.0 / 298.15) - 273.15;
//hacemos una conversión del valor de temperatura a ºC
Serial.print("Temperatura = ");
Serial.print(grados);
Serial.print(" ºC");
//mostramos en el monitor serie la temperatura
Serial.println();
//añadimos un salto de linea cada vez que aparece el
//texto con la temperatura
delay(5000);
//esperamos 5 segundos para mostrar la temperatura de
//nuevo
if (grados > -10 && grados < 50) {
//creamos una condición que comprueba que el
//funcionamiento es correcto
//si lo anterior fuera incorrecto estaría fuera del
//rango de estos valores
//esta condición se cumple si la temperatura es mayor a
//-10º y menor a 50º
digitalWrite (led_white, HIGH);
//encendemos el led si el funcionamiento es correcto
Serial.print ("👌 Funcionamiento del sistema correcto");
//Además, añadimos un mensaje que indica que el
//funcionamiento es correcto
Serial.println();
//añadimos un salto de linea
if (grados > 10 && grados < 30) {
digitalWrite (led_green, HIGH);
//si la condición anterior se cumple y la actual también,
//la temperatura es correcta y el led se enciende
Serial.print("👌 Temperatura correcta, no hay peligro");
//También mostramos el anterior mensaje
Serial.println();
//añadimos un salto de linea
}
else {
digitalWrite (led_green, LOW);
//si la condición anterior no se cumple
//la temperatura es incorrecta y apagamos el led
Serial.print("⚠️ Temperatura incorrecta ¡PELIGRO!");
//También mostramos el anterior mensaje
Serial.println();
//añadimos un salto de linea
}
delay (5000);
//esperamos 5 segundos para mostrar el siguiente mensaje
}
if (grados < -10 || grados > 50) {
//creamos otra condición que detecta que el
//funcionamiento y temperatura son incorrectos
//esta condición se cumple si la temperatura es menor a
//-10º o mayor a 50º
digitalWrite (led_white, LOW);
//si la transferencia es incorrecta el led se apaga
Serial.print ("⚠️ Funcionamiento incorrecto, ¡PELIGRO!");
//Además, añadimos un mensaje que indica que el
//funcionamiento es incorrecto
Serial.println();
//añadimos un salto de linea
digitalWrite (led_green, LOW);
//si la condición anterior se cumple
//la temperatura es incorrecta y apagamos el led
Serial.print("⚠️ Temperatura incorrecta ¡PELIGRO!");
//También mostramos el anterior mensaje
Serial.println();
//añadimos un salto de linea
delay (5000);
//esperamos 5 segundos para mostrar el siguiente mensaje
}
}