Control Remoto IR con Arduino

La comunicación d IR (infrarroja) es ampliamente utilizada en la vida cotidiana mediante controles de remotos de TV, equipos de audio, sensores de movimiento y termómetros infrarrojos.

¿Qué es infrarrojo?

Infrarrojo (IR) es una forma de luz similar a la luz visible. La única diferencia entre luz IR y la luz visible es la frecuencia y la longitud de onda. La radiación IR se encuentra fuera del rango visible de luz, por lo que los humanos no pueden verla:

1-980x457

Debido a que el IR es un tipo de luz, la comunicación IR requiere línea directa de vista desde el transmisor a receptor.

Lista de componentes:

  • Arduino Uno
  • Control Remoto IR
  • Receptor IR VS1838
  • 2 leds, color a elección
  • 2 resistencias de 1k ohms
  • Cables de conexión

6

Conexiones.

A continuación, se muestra el circuito para realizar el proyecto.

7-980x410

El circuito encenderá el LED cuando uno de los botones es presionado, el programa se puede modificar fácilmente para colocar más leds u otros componentes como motores, relays, etc.

Añadir la librería.

Primero se debe instalar la librería IRremote desde la opción de administrar librerías del IDE de Arduino.

Programa>incluir librería>Administrar Bibliotecas

Buscar la librería e instalarla.

Antes de cargar el programa para controlar los leds debemos encontrar los códigos correspondientes a cada botón de nuestro control remoto, para eso debemos cargar el siguiente programa y abrir el monitor serial:

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
   Serial.begin(9600);
   irrecv.enableIRIn();
   irrecv.blink13(true);
}

void loop(){
  if (irrecv.decode(&results)){
     Serial.println(results.value, HEX);
     irrecv.resume();
   }
}

Una vez cargado el programa anterior, apretamos cada botón del control remoto y en el monitor serial nos aparecerá el código hexadecimal correspondiente a cada botón:

8

Una vez que tenemos identificado los códigos correspondientes a cada botón de nuestro control remoto, podemos continuar con el programa.

El siguiente código colocara el pin 10 en estado alto (HIGH) durante 2 segundo cuando el botón “5” del control sea presionado, y colocara en estado alto (HIGH) el pin 11 durante dos segundos cuando el botón “2” del control remoto.

Debemos recordar de modificar el código hexadecimal de los botones en el programa con el código hexadecimal que identificamos anteriormente.

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int redPin = 10;
const int greenPin = 11;

void setup(){
  irrecv.enableIRIn();
  irrecv.blink13(true);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}

void loop(){
  if (irrecv.decode(&results)){
    switch(results.value){
       case 0xFF38C7: //Keypad button “5”
            digitalWrite(redPin, HIGH);
            delay(2000);
            digitalWrite(redPin, LOW);
    }

    switch(results.value){
      case 0xFF18E7: //Keypad button “2”
           digitalWrite(greenPin, HIGH);
           delay(2000);
           digitalWrite(greenPin, LOW);
    }
   irrecv.resume();
  }
}

Aprieta el botón subir para enviar el código al Arduino. Y ahora deberías poder controlar los leds mediante el control remoto!

Fuentes:  http://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/