Automatice su Lámpara Nocturna con Arduino: Código y Simulación Proteus
Lámpara Nocturna Automática con Arduino – Código, Funcionamiento y Simulación
Automatización = método que reduce/elimina esfuerzo humano. Aquí explicamos automatizar lámpara nocturna mediante Arduino y Relé, simulando con Proteus. Aplicaciones: desde control caldera con termostato a gestión industrial masiva. Complejidad: desde simple "on/off" a algoritmos multivariable complejos. Sistemas: lazo abierto (un parámetro entrada) o cerrado (salida realimentada como entrada).
Pros y contras:
Ventajas:
- Aumento productividad
- Calidad predecible (mejora calidad)
- Mayor robustez
- Gran consistencia resultados
- Reducción costes mano obra
- Alta precisión
- Reduce esfuerzo humano en tareas monótonas
Desventajas:
- Vulnerable a amenazas seguridad
- Coste desarrollo puede exceder previsión
- Alto coste puesta en marcha
- Causa desempleo en sectores
Ventajas superan desventajas → mundo avanza hacia automatización.
Hacemos lámpara que se enciende/apaga sola al detectar cambio apreciable intensidad luz. Usamos Arduino, Relé y simulación Proteus.
Componentes Necesarios:
- Arduino UNO
- Relé 5 V
- LDR (Resistor Dependiente Luz)
- Resistencia 10 kΩ
- Transistor BC547
- Alimentación DC 5 V
- Alimentación AC 220 V
Software Necesario:
- Arduino IDE
- Proteus
Diagrama Circuito Lámpara Nocturna Automática
Descripción Componentes:
Arduino UNO:
Placa desarrollo open-source, microcontrolador Microchip ATmega328P (Arduino.cc). Pines E/S digitales/analógicos para shields y circuitos externos. 14 pines digitales + 6 analógicos, programables via IDE. Programación vía USB tipo B. Alimentación USB o 12 V DC. Similar a Nano/Leonardo. Protocolo STK500. Diferencia: no usa chip FTDI (USB-serie).
Relé:
Interruptor electromagnético operado eléctricamente para encender/apagar cargas AC/DC. Controlable con 5 V (salida pines Arduino). Bobina con contactos metálicos (lado baja tensión) que magnetiza/desmagnetiza para abrir/cerrar circuito lado alta tensión. Lado alta tensión: conector 3 bornes: Común (COM), Normalmente Cerrado (NC), Normalmente Abierto (NO). Tensiones: 12V, 9V, 5V, 3V.
LDR:
Resistencia variable que cambia valor con intensidad luz (fotoconductividad). Resistencia baja al aumentar luz. Usado en detectores luz y conmutación activada por luz. Semiconductor alta resistencia: MΩ en oscuridad, cientos Ω con luz.
BC547 – Transistor NPN:
Dispositivo semiconductor para amplificar/conmutar señales y potencia. 3 terminales. Usamos BC547 (BJT NPN). Pequeña corriente en base controla gran corriente colector/emisor. Tensión DC fija en terminales para región operación deseada. Amplificación: polarizado parcial (siempre algo conducción). Conmutación: polarizado saturación (total ON con señal base; OFF sin señal).
Características Nominales:
- VCEO = 45 Vdc
- IC = 100 mAdc
- VCBO = 50 Vdc
- VEBO = 6 Vdc
Descripción Software:
Proteus:
Suite diseño propietario para automatización diseño electrónico (EDA). Crear esquemáticos y PCB. Desarrollado en Yorkshire, Inglaterra (Labcenter Electronics Ltd.). Multi-idioma (inglés, francés, español, mandarín). Actualizaciones regulares con librerías componentes avanzados. Simula circuitos/microcontroladores → test sin componentes físicos. UI destacada. +15 millones componentes en librería.
Arduino IDE:
Multiplataforma (Java). Escribe sketch y sube a placas compatibles. Lenguajes C/C++ modificados según librería. Librerías integradas y de terceros. Usa avrdude para convertir a hexadecimal; cargador preinstalado en firmware placa.
Código del Proyecto
Explicación Código:
Dos variables globales enteras: analogIN (pin analógico entrada valor circuito) y trigger (pin digital salida trigger tensión suficiente).
int analogIN = A3;
int trigger = 12;
Baud rate 9600 bits/s. pinMode() define estado pines: pin 12 salida, A3 entrada. En setup() (ejecuta una vez):
void setup() {
Serial.begin(9600);
pinMode(analogIN, INPUT);
pinMode(trigger, OUTPUT);
}
Según circuito, leer dato analógico pin A3. Usamos analogRead() (entrada analógica → pin analógico). Valor guardado en variable "value" (0-1023, ADC 10 bits Arduino).
Variable "value" usada en condicional (if-else) para poner pin trigger HIGH/LOW y encender/apagar lámpara. Imprimir "value" en monitor serie permite asociar intensidad luz a valor y ajustar umbral.
Código en loop() se repite mientras Arduino alimentado. Para operación 24/7, alimentación continua.
void loop() {
int value = analogRead(analogIN);
Serial.println(value);
if (value < 692) {
digitalWrite(trigger, HIGH);
Serial.println("lámpara ENCENDIDA");
} else {
digitalWrite(trigger, LOW);
Serial.println("lámpara APAGADA");
}
}
Cómo Obtener Ubicación Archivo .hex:
Arduino IDE → Archivo > Preferencias → "Mostrar salida detallada" → marcar compilación y subida. Compilar → copiar ruta .hex en ventana inferior. En Proteus, doble clic Arduino → pegar ruta en "Program file" → OK. Listo para simular.
Video Simulación
Próximamente
Funcionamiento Circuito Lámpara Nocturna
Alimentación 5 V DC (pin 5V Arduino) + resistencia 10k + LDR en divisor tensión. Tensión en resistencia o LDR → pin analógico A3.
Código lee valor analógico → corresponde a intensidad luz detectada por LDR. Monitor serie para calibrar → cambiar condición if-else para encender/apagar a intensidad deseada (dinámico).
Condición cumplida (luz baja < umbral) → pin 12 HIGH (5 V) → tensión base transistor → transistor conduce → corriente bobina relé → relé ON → contacto NO activo → circuito lámpara cerrado → lámpara ON.
Lámpara OFF cuando else true (luz > umbral) → pin 12 LOW → relé OFF → lámpara OFF.
Conclusión: Todos queremos vida más fácil; lámpara nocturna automática lo hace. No hace falta encender/apagar manual. Día = OFF; oscurece sensor = ON. Proyecto con componentes básicos. Código explicado para iniciar con Arduino sin dificultad.
Tecnología Industrial
- Crea un Impresionante Sistema Ambilight para Monitor con Arduino
- Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
- Monitor de Frecuencia Cardíaca IoT en Tiempo Real con Arduino y MAX30100
- Servidor Web Arduino Uno WiFi: Controla un LED desde el Navegador
- Automatiza el Juego del Dinosaurio de Chrome con Arduino y Python
- Construye una Radio FM Compacta con Arduino Nano y RDA5807M
- Shield de Programación Inalámbrica para Arduino con HC-05 Bluetooth – Sin Cable USB
- Interruptor Táctil Capacitivo LED con Arduino UNO – Proyecto DIY Fácil
- Sistema de Seguimiento Facial en Tiempo Real con Arduino y OpenCV
- Cómo Funcionan los Cambiadores Automáticos de Herramientas: Guía Completa
- Cómo los fabricantes aprovechan la automatización para escalar el cumplimiento de e-commerce