Leer señales del Mando a distancia


Todos los mandos a distancia utilizan luz infrarroja como forma de comunicarse, por lo tanto vamos a necesitar un receptor de Infrarrojos. Yo he utilizado el IR Keyes 022



El pin marcado con S, va conectado al pin 11 de la placa.



El sketch seria el siguiente:


#include <IRremote.h>
#define irPin 11

IRrecv irrecv(irPin);
decode_results results;

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

void loop() {
        if (irrecv.decode(&results)) {
            Serial.print("0x");
            Serial.println(results.value, HEX);
            delay(250);
            irrecv.resume();
      }
}

La tarea de este código es leer los datos desde el receptor conectado al pin 11 y enviarlo al Serial Monitor. Este programa nos mostrara los códigos de los botones de nuestro control remoto.
Primero hay que descargar la librería irRemote, que nos proporcionara una forma sencilla de leer las señales recibidas. Descargamos, descomprimimos e instalamos en el IDE de Arduino. Enlace de descarga: https://github.com/z3t0/Arduino-IRremote

Es necesario quitar temporalmente la librería RobotIRemote ya que no se porque entra en conflicto con la librería antes mencionada.

En el vídeo adjunto podemos ver el resultado de la ejecución en el Serial Monitor. Los códigos que aparecen corresponden con los números: 1,2,3,4,5,6,7,8,9,0 , flecha arriba, flecha abajo, flecha izquierda, flecha derecha y OK, correspondientes al mando a distancia de mi televisor Samsung.




Ya tenemos los códigos de los botones que queremos utilizar, ahora tenemos que añadir un poco mas de código para mejorarlo.