Controle Luces y Ventilador con un Mando de TV: Proyecto IR Sencillo
Componentes y materiales
| Componente | Cantidad | Notas |
|---|---|---|
| Receptor IR (TSOP38238 o similar) | 1 | |
| Arduino UNO | 1 | O ATmega328P para circuito soldado permanente |
| Módulo relé HL-525 (2+ canales) | 1 | O cualquier placa relé multi-canal |
Herramientas necesarias
- Un mando de TV
Descripción del proyecto
Este proyecto controla luces y/o ventilador de forma inalámbrica desde el sofá. Elegí el receptor TSOP por ser ideal para comunicación inalámbrica de corto alcance.
Es muy barato (~0,12 € en India) y ya tiene el transmisor: el mando de la TV.
El mando envía señales infrarrojas a 38 kHz; el TSOP recibe entre 36-40 kHz. El pinout varía según modelo.
El mando emite pulsos alto/bajo a alta frecuencia, encendiendo/apagando el LED IR. Cuando el LED está ON, el TSOP va LOW; cuando OFF, el TSOP va HIGH (también en reposo).
Las entradas del relé activan el contacto al recibir LOW (interruptor "cerrado").
Adjunto video del mando activando el relé. Por falta de portalámparas funcional, no grabo la lámpara encendiéndose, pero la conexión es:
En mi módulo, de izquierda a derecha: NC (normalmente cerrado), COM (común), NO (normalmente abierto). Conecte el cable de fase a la bombilla como se muestra. Puede soldar todo e instalarlo dentro de su caja de interruptores para controlar tubos fluorescentes, ventilador, lámpara, etc.
NOTA: A la izquierda del módulo relé hay 3 pines: D-Vcc, Vcc, GND. Recomiendo quitar el jumper y alimentar D-Vcc con 5V aparte, ya que va a un optoacoplador (aisla alta tensión del microcontrolador), protegiendo ante picos.
Código
#include <IRremote.h>
#include <IRremoteInt.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
pinMode(3, OUTPUT); // Relé 1
pinMode(4, OUTPUT); // Relé 2
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
translateIR();
irrecv.resume();
}
}
void translateIR() {
switch (results.value) {
case 0x80BFC13E: digitalWrite(3, LOW); break; // Relé 1 ON
case 0x80BF4BB4: digitalWrite(3, HIGH); break; // Relé 1 OFF
case 0x80BF837C: digitalWrite(4, LOW); break; // Relé 2 ON
case 0x80BF9966: digitalWrite(4, HIGH); break; // Relé 2 OFF
}
}
IMPORTANTE: Su mando enviará códigos HEX distintos. Los del ejemplo son solo explicativos.
Este código usa la librería IRremote (instálela desde Library Manager). Los relés se activan con LOW: al recibir cierto código HEX, ponemos LOW en el pin del relé 1; con otro código, HIGH para apagarlo.
Esquemáticos
Proceso de manufactura
- Ventilador controlado por temperatura: sistema DIY con relé para refrigeración de muebles multimedia
- Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
- Sensor de ocupación para baño con Raspberry Pi: alertas por voz y SMS mediante Twilio
- Interruptor Inteligente de Corriente Alterna Controlado por SMS con Raspberry Pi y Hologram
- Controla tu Raspberry Pi con un Mando IR Reciclado: Apagado y Reinicio vía LIRC
- ROObockey: Robot de Hockey Callejero con Asistencia de Precisión y Control Remoto
- Descifrando el Cuadro de Mandos de tu Coche: Luces, Testigos y Qué Significan
- Sensores de Color: Funcionamiento y Aplicaciones Clave
- Sensor de Luz Ambiente BH1750: Especificaciones, Características y Aplicaciones Prácticas
- Fotorresistor (LDR): Función, Tipos y Aplicaciones Prácticas
- Sensores de Luz Ambiente: Funcionalidad, Diseño y Aplicaciones Clave