02. Luz nocturna automática (crepuscular)
Una luz que se enciende sola al oscurecer usando una fotorresistencia, como las farolas de la calle.
🧰 Lista de materiales
🎯 Qué vas a aprender
Aquí das el salto de «escribir» pines a «leer» el mundo físico. Aprenderás qué es una entrada analógica, cómo un divisor de tensión convierte una resistencia variable en un voltaje medible, y cómo tomar decisiones con un umbral.
📚 Teoría: la LDR y el divisor de tensión
Una LDR (Light Dependent Resistor) es una resistencia que cambia con la luz: con mucha luz baja a ~1 kΩ y a oscuras sube a cientos de kΩ. Pero el Arduino no mide resistencias, solo voltajes (0–5 V) en sus pines analógicos A0–A5.
Para convertir la resistencia en voltaje usamos un divisor de tensión: la LDR y una resistencia fija de 10 kΩ en serie entre 5 V y GND. El punto medio da un voltaje que sube y baja con la luz.
V_A0 = 5 V × R_fija / (R_fija + R_LDR)
A oscuras: R_LDR alta → V_A0 baja → valor analógico pequeño
Con luz: R_LDR baja → V_A0 alta → valor analógico grandeanalogRead().🔌 Conexiones
| Desde | Hasta |
|---|---|
| LDR pata 1 | 5 V |
| LDR pata 2 | A0 y resistencia 10 kΩ → GND |
| LED ánodo | D9 a través de 220 Ω |
| LED cátodo | GND |
💻 Código completo
// Luz nocturna automática con LDR
const int PIN_LDR = A0;
const int PIN_LED = 9;
int umbral = 400; // ajústalo según tu LDR y tu sala
void setup() {
pinMode(PIN_LED, OUTPUT);
Serial.begin(9600); // para calibrar el umbral
}
void loop() {
int luz = analogRead(PIN_LDR); // 0 (oscuro) .. 1023 (claro)
Serial.println(luz); // mira el Monitor Serie
if (luz < umbral) {
digitalWrite(PIN_LED, HIGH); // está oscuro → enciende
} else {
digitalWrite(PIN_LED, LOW); // hay luz → apaga
}
delay(200);
}umbral a medio camino entre ambos.🛠️ Montaje paso a paso
- Monta el divisor: 5 V → LDR → nodo central → resistencia 10 kΩ → GND.
- Lleva un cable del nodo central al pin A0.
- Conecta el LED (con su 220 Ω) entre D9 y GND.
- Sube el sketch y abre el Monitor Serie para calibrar.
- Ajusta
umbraly vuelve a subir.
🧩 Resolución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
| El LED siempre encendido | Umbral demasiado alto | Baja el valor de umbral |
| Valores erráticos | Divisor mal conectado | Revisa que la 10 kΩ vaya a GND |
| Lectura siempre 1023 | A0 conectado a 5 V directo | Falta la resistencia fija |
🚀 Para ir más lejos
- Cambia el LED por un módulo relé (proyecto 13) para encender una lámpara real.
- Añade histéresis (dos umbrales) para que no parpadee al amanecer.