float BETA = 3950; //Iniciamos la variable BETA con el valor del termistor para que luego la equación funcione correctamente
int Led_Rojo = 9; //Establecemos el PIN 9 de la placa al led rojo
int Led_Verde = 10; //Establecemos el PIN 10 de la placa al led verde
int Buzzer = A2; //Establecemos el PIN A2 de la placa al buzzer
int Led_Azul = 13; //Establecemos el PIN 13 de la placa al led azul
void setup()
{
Serial.begin(9600); //Establecemos la comunicación serie para poder sacar mensajes por la consola
pinMode (Led_Verde, OUTPUT); //Establecemos el led en modo de salida (Output)
pinMode (Led_Rojo, OUTPUT); //Establecemos el led en modo de salida (Output)
pinMode (Led_Azul, OUTPUT); //Establecemos el led en modo de salida (Output)
pinMode (Buzzer, OUTPUT);//Establecemos el buzzer en modo de salida (Output)
}
void loop()
{
int sensorDeTemperatura = analogRead(A5); //Establecemos el PIN A0 de la placa al sensor de temperatura NTC
float temperaturaEnCelsius = 1 / (log(1 / (1023. / sensorDeTemperatura - 1))/BETA + 1.0/298.15) - 273.15; //Pasamos el valor decimal del sensor NTC a grados Celsius
float temperaturaRedondeada = round(temperaturaEnCelsius * 10) / 10.0; //Redondeamos la temperatura en Celsius a un único decimal
if (temperaturaRedondeada < 40) //Si la temperatura es menor a 40, haz el cambio entre leds
{
digitalWrite(Led_Azul, LOW); //Led azul encendido
digitalWrite(Led_Verde, HIGH); //Led verde encendido
tone(Buzzer, 120); //Emite sonido del buzzer
delay(500);
digitalWrite(Led_Verde, LOW); //Led verde apagado
noTone(Buzzer); //Buzzer silenciado
digitalWrite(Led_Rojo, HIGH); //Led rojo encendido
tone(Buzzer, 320); //Emite sonido del buzzer
delay(500);
digitalWrite(Led_Rojo, LOW); //Led rojo apagado
noTone(Buzzer); //Buzzer silenciado
}
if (temperaturaRedondeada >= 41 && temperaturaRedondeada <= 60) //Si la temperatura es mayor o igual a 41 y menor o igual a 60, enciende el led rojo y azul y avisa
{
Serial.println("Alerta!, ¡La temperatura ha alcanzado un nivel peligroso!"); //Mensaje por consola con el aviso
digitalWrite(Led_Verde, LOW); //Led verde apagado
digitalWrite(Led_Rojo, HIGH); //Led rojo encendido
digitalWrite(Led_Azul, HIGH); //Led azul encendido
delay(1000);
}
if (temperaturaRedondeada > 60) //Si la temperatura es mayor a 60 enciende todo y sonido de 1200Hz
{
Serial.println("¡Error inminente en el sistema!"); //Mensaje por consola con el aviso
digitalWrite(Led_Verde, HIGH); //Led verde apagado
digitalWrite(Led_Rojo, HIGH); //Led rojo encendido
digitalWrite(Led_Azul, HIGH); //Led azul encendido
tone(Buzzer, 1200); //Emite sonido del buzzer
delay(1000);
}
}