#define led 2 // Define el pin 2 como el pin para el LED
#define sensor A5 // Define el pin A5 como el pin donde está conectado el sensor de temperatura
void setup() {
pinMode(led, OUTPUT); // Configura el pin del LED como salida
pinMode(sensor, INPUT); // Configura el pin del sensor como entrada
Serial.begin(9600); // Inicia la comunicación serial a 9600 bps para depuración
}
void loop() {
float temperatura = leerTemperatura(); // Llama a la función leerTemperatura() y guarda el resultado en la variable temperatura
controlarLed(temperatura); // Llama a la función controlarLed() pasando la temperatura para encender/apagar el LED
delay(1000); // Pausa de 1 segundo antes de la próxima lectura
}
float leerTemperatura() {
int valor = analogRead(sensor); // Lee el valor analógico del sensor en el pin A5 (rango de 0 a 1023)
float voltaje = valor * (5.0 / 1023.0); // Convierte el valor leído a voltaje (0V a 5V)
float resistencia = (10000 * voltaje) / (5.0 - voltaje); // Calcula la resistencia del termistor usando un divisor de tensión de 10kΩ
float temperatura = 1 / (log(resistencia / 10000.0) / 3950 + 1 / 298.15) - 273.15; // Convierte la resistencia a temperatura en °C
Serial.print("Temperatura: "); // Imprime en el monitor serie "Temperatura: "
Serial.print(temperatura); // Imprime el valor de la temperatura
Serial.println(" °C"); // Imprime " °C" para indicar la unidad
return temperatura; // Devuelve el valor de la temperatura en °C
}
void controlarLed(float temperatura) {
if (temperatura >= 50) { // Verifica si la temperatura es mayor o igual a 50°C
digitalWrite(led, HIGH); // Si es así, enciende el LED
} else {
digitalWrite(led, LOW); // Si no, apaga el LED
}
}