Pulsa botones del mando y controla LEDs sin cables. Como la TV, pero tu lo programas.
Como Funciona la Luz Infrarroja
Luz Invisible
El infrarrojo es luz que nuestros ojos no pueden ver, pero las camaras y sensores si la detectan.
En Tu Casa
Tu TV, aire acondicionado y otros aparatos usan esta misma tecnologia para recibir comandos.
Codigos Unicos
Cada boton envia un patron diferente de pulsos, como un codigo secreto que Arduino descifra.
Comunicacion IR en Accion
Haz clic en los botones del mando para ver la transmision
El Receptor VS1838B
| Pin | Nombre | Conectar a | Funcion |
|---|---|---|---|
| OUT | Salida de datos | Pin 11 | Envia la senal decodificada a Arduino |
| GND | Tierra | GND | Referencia de voltaje (0V) |
| VCC | Alimentacion | 5V | Energia para el sensor (5 voltios) |
Diagrama del Circuito
Codigos Hexadecimales
Cada boton del mando envia un numero unico. Arduino lo recibe en formato hexadecimal (base 16), que usa numeros 0-9 y letras A-F.
El prefijo 0x indica que es hexadecimal
| Boton | Codigo (mando ELEGOO) | Accion en nuestro codigo |
|---|---|---|
| 1 | 0xF30CFF00 |
Enciende LED Rojo |
| 2 | 0xE718FF00 |
Enciende LED Verde |
| 3 | 0xA15EFF00 |
Enciende LED Azul |
| 0 | 0xE916FF00 |
Apaga todos los LEDs |
Instalar Libreria IRremote
Para decodificar las senales IR, necesitamos la libreria IRremote. Es como un traductor que convierte los pulsos de luz en numeros que Arduino entiende.
El Codigo
#include <IRremote.hpp>
const int IR_PIN = 11;
const int LED_ROJO = 8;
const int LED_VERDE = 9;
const int LED_AZUL = 10;
// Codigos del mando (usa Monitor Serial para descubrir los tuyos)
const uint32_t BOTON_1 = 0xF30CFF00;
const uint32_t BOTON_2 = 0xE718FF00;
const uint32_t BOTON_3 = 0xA15EFF00;
const uint32_t BOTON_0 = 0xE916FF00;
void setup() {
Serial.begin(9600);
Serial.println("Control Remoto IR - EigenRobotics");
Serial.println("Pulsa botones del mando para ver sus codigos");
// Iniciar receptor IR
IrReceiver.begin(IR_PIN, ENABLE_LED_FEEDBACK);
// Configurar LEDs como salida
pinMode(LED_ROJO, OUTPUT);
pinMode(LED_VERDE, OUTPUT);
pinMode(LED_AZUL, OUTPUT);
apagarTodo();
}
void loop() {
if (IrReceiver.decode()) {
// Mostrar codigo recibido en Monitor Serial
Serial.print("Codigo recibido: 0x");
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
// Obtener el codigo
uint32_t codigo = IrReceiver.decodedIRData.decodedRawData;
// Ejecutar accion segun el boton
switch (codigo) {
case BOTON_1:
Serial.println("-> LED Rojo");
apagarTodo();
digitalWrite(LED_ROJO, HIGH);
break;
case BOTON_2:
Serial.println("-> LED Verde");
apagarTodo();
digitalWrite(LED_VERDE, HIGH);
break;
case BOTON_3:
Serial.println("-> LED Azul");
apagarTodo();
digitalWrite(LED_AZUL, HIGH);
break;
case BOTON_0:
Serial.println("-> Apagar todo");
apagarTodo();
break;
default:
Serial.println("-> Boton no asignado");
break;
}
// Preparar para siguiente senal
IrReceiver.resume();
}
}
void apagarTodo() {
digitalWrite(LED_ROJO, LOW);
digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AZUL, LOW);
}
Demo Interactivo
Prueba el Control Remoto
Pulsa los botones del mando para controlar los LEDs
Simulador
Pasos de Construccion
Prepara la protoboard
Conecta 5V de Arduino al riel positivo (+) y GND al riel negativo (-)
Coloca el receptor IR
Mira la parte abombada. De izquierda a derecha: OUT (pin 11), GND (riel -), VCC (riel +)
Conecta el LED Rojo
Pata larga (+) a resistencia 220Ξ©, resistencia al pin 8. Pata corta (-) al riel GND
Conecta el LED Verde
Igual que el rojo, pero la resistencia va al pin 9
Conecta el LED Azul
Igual que los anteriores, con la resistencia al pin 10
Instala la libreria
Arduino IDE β Sketch β Include Library β Manage Libraries β Buscar "IRremote" β Install
Sube el codigo
Copia el codigo y subelo a Arduino. Abre el Monitor Serial (9600 baud)
Descubre tus codigos
Pulsa botones del mando y anota los codigos hexadecimales que aparecen
Personaliza el codigo
Reemplaza BOTON_1, BOTON_2, BOTON_3, BOTON_0 con los codigos de tu mando
Prueba y disfruta
Apunta el mando al receptor y controla los LEDs a distancia. Β‘Magia!
Experimentos
Modo Discoteca
Programa un boton para hacer un efecto de luces parpadeantes con los 3 LEDs
Control de Brillo
Usa VOL+ y VOL- para subir y bajar el brillo de los LEDs con PWM (analogWrite)
Otro Mando
Prueba con el mando de la TV o el aire acondicionado. ΒΏQue codigos tienen?
Robot a Control Remoto
Combina este proyecto con P5 para controlar el robot con el mando IR
Piano IR
Anade un buzzer y asigna cada boton numerico a una nota musical diferente
Semaforo a Distancia
Combina con P1 para controlar el semaforo con el mando. Un boton para cada fase