Proyecto 6

Control Remoto IR

Controla tu Arduino con un mando a distancia infrarrojo. Comunica comandos invisibles a traves del aire.

πŸ“‘
Mando a Distancia Magico

Pulsa botones del mando y controla LEDs sin cables. Como la TV, pero tu lo programas.

1

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

Mando IR
Receptor VS1838B

Haz clic en los botones del mando para ver la transmision

2

El Receptor VS1838B

πŸ“‘ OUT GND VCC Pin 11 GND 5V Vista frontal (mirando la parte abombada) VS1838B - Receptor Infrarrojo
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)
πŸ’‘
Tip: El orden de los pines puede variar segun el fabricante. Busca las letras grabadas en el sensor o consulta su datasheet.
3

Diagrama del Circuito

Circuito Control Remoto IR ARDUINO UNO USB DIGITAL 11 10 9 8 POWER 5V GND PROTOBOARD + - IR VS1838B R LED Rojo G LED Verde B LED Azul Pin 11 Pin 8 Pin 9 Pin 10 Todos los GND de LEDs conectados a riel negativo (-) Componentes: VS1838B LED Rojo LED Verde LED Azul
⚠️
Importante: Cada LED necesita su resistencia de 220Ξ©. Sin ella, el LED se quemara.
4

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.

0xF30CFF00
β†’
Boton "1"
Codigo unico del mando ELEGOO

El prefijo 0x indica que es hexadecimal

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
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
πŸ’‘
Cada mando es diferente: Los codigos de tu mando pueden ser distintos. Por eso primero descubrimos los codigos con el Monitor Serial.
5

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.

1
Abre Arduino IDE y ve a Sketch β†’ Include Library β†’ Manage Libraries...
2
En el buscador escribe "IRremote"
3
Busca la libreria de shirriff/z3t0 (es la mas popular)
4
Haz clic en Install y espera a que termine
6

El Codigo

p6_control_remoto.ino
#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);
}
#include <IRremote.hpp>
Importa la libreria que sabe "leer" senales infrarrojas
IrReceiver.begin()
Enciende el receptor y lo prepara para escuchar
IrReceiver.decode()
Pregunta: "ΒΏHa llegado alguna senal?" Devuelve true si hay mensaje
decodedRawData
El numero hexadecimal que identifica que boton se pulso
switch (codigo)
Como un semaforo: segun el codigo recibido, hace una cosa u otra
IrReceiver.resume()
Dice al receptor: "Ya procese esta senal, puedes escuchar la siguiente"
πŸ” Como Descubrir Tus Codigos
1
Sube el codigo a tu Arduino
2
Abre el Monitor Serial (boton lupa arriba a la derecha, o Ctrl+Shift+M)
3
Asegurate de que dice 9600 baud abajo a la derecha
4
Pulsa cada boton del mando apuntando al sensor
5
Anota los codigos que aparecen (ej: 0xF30CFF00)
6
Reemplaza los valores BOTON_1, BOTON_2, etc. con tus codigos
7

Demo Interactivo

Prueba el Control Remoto

Pulsa los botones del mando para controlar los LEDs

EIGENROBOTICS
Rojo
Verde
Azul
Monitor Serial 9600 baud
Control Remoto IR - EigenRobotics
Pulsa botones del mando para ver sus codigos
8

Simulador

Wokwi Simulator
πŸ’‘
Nota: En el simulador de Wokwi puedes anadir un receptor IR virtual y probar el codigo. Busca "IR Receiver" en los componentes.
9

Pasos de Construccion

1

Prepara la protoboard

Conecta 5V de Arduino al riel positivo (+) y GND al riel negativo (-)

2

Coloca el receptor IR

Mira la parte abombada. De izquierda a derecha: OUT (pin 11), GND (riel -), VCC (riel +)

3

Conecta el LED Rojo

Pata larga (+) a resistencia 220Ξ©, resistencia al pin 8. Pata corta (-) al riel GND

4

Conecta el LED Verde

Igual que el rojo, pero la resistencia va al pin 9

5

Conecta el LED Azul

Igual que los anteriores, con la resistencia al pin 10

6

Instala la libreria

Arduino IDE β†’ Sketch β†’ Include Library β†’ Manage Libraries β†’ Buscar "IRremote" β†’ Install

7

Sube el codigo

Copia el codigo y subelo a Arduino. Abre el Monitor Serial (9600 baud)

8

Descubre tus codigos

Pulsa botones del mando y anota los codigos hexadecimales que aparecen

9

Personaliza el codigo

Reemplaza BOTON_1, BOTON_2, BOTON_3, BOTON_0 con los codigos de tu mando

10

Prueba y disfruta

Apunta el mando al receptor y controla los LEDs a distancia. Β‘Magia!

10

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