Alertas con condiciones

Enciende un LED de alerta cuando la temperatura supera un umbral, usando if y else.

Qué vas a construir

El sensor de temperatura con un LED de alerta. Cuando la temperatura llega a 30 °C o más, el LED se enciende. Cuando baja, se apaga.

Lo que aprendes

  • Cómo tomar decisiones con if y else.
  • La diferencia entre = (asignar) y == (comparar).
  • Qué es un umbral y por qué conviene definirlo como constante.
  • Cómo organizar la lectura del sensor en una función.

Materiales en Tinkercad

  • Arduino Uno R3
  • Sensor TMP36, conectado como en Leer un sensor de temperatura
  • LED y resistencia de 220 Ω
  • Protoboard y cables

Paso 1: Conecta el LED de alerta

  1. Conecta el ánodo del LED al pin 8.
  2. Conecta el cátodo a la resistencia de 220 Ω y la resistencia a GND.

El sensor se queda igual que en Leer un sensor de temperatura.

Paso 2: Escribe el código

const int SENSOR = A0;
const int ALERTA = 8;
const float UMBRAL = 30.0;  // grados Celsius

float leerCelsius() {
  int lectura = analogRead(SENSOR);
  float voltaje = lectura * 5.0 / 1024.0;
  return (voltaje - 0.5) * 100.0;
}

void setup() {
  pinMode(ALERTA, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  float celsius = leerCelsius();

  if (celsius >= UMBRAL) {
    digitalWrite(ALERTA, HIGH);  // alerta encendida
  } else {
    digitalWrite(ALERTA, LOW);   // todo normal
  }

  Serial.println(celsius);
  delay(500);
}

Fíjate en que UMBRAL está en un solo lugar. Si quieres cambiar el límite, modificas esa línea y no buscas en todo el código.

Paso 3: Prueba el umbral

Hay dos formas de probarlo:

  1. Con el sensor: si Tinkercad te permite cambiar la temperatura del TMP36, ponla por encima de 30 °C.
  2. Sin cambiar el sensor: baja temporalmente el valor de UMBRAL a 20 °C. Si la temperatura de la simulación supera ese valor, el LED se enciende.

Cuando termines la prueba, vuelve a poner 30 °C.

Cómo sabes que lo lograste

  • El LED se apaga cuando la temperatura está por debajo del umbral.
  • El LED se enciende cuando la temperatura supera el umbral.
  • Puedes explicar la diferencia entre = y == con un ejemplo.

Qué salió mal

El LED siempre está encendido. Probablemente escribiste if (celsius = UMBRAL) con un solo =. Eso asigna en vez de comparar. Debe ser >=.

El LED nunca se enciende. Revisa que el umbral sea un valor que la simulación pueda alcanzar. Si la temperatura está en 22 °C, un umbral de 30 °C nunca se activa.

Siguiente clase

En la siguiente clase vas a hacer que el sistema lea el sensor y responda a un botón al mismo tiempo, sin usar delay() para esperar.