Receptor Infrarrojo KY-022 para domotizar con cualquier mando a distancia

 Buenas!

En esta entrada vamos a utilizar el módulo receptor infrarrojo KY 022. Tiene un led de actividad que se enciende cuando recibe una señal por infrarrojo y tres pines dos para alimentación y uno para enviar la señal al pin de Arduino.

El módulo incluye un diodo fotosensible para recibir la señal de la luz infrarroja que no es visible al ojo humano pero que transmiten todos los objetos (incluso nuestro cuerpo) con mayor o menor intensidad.

Detalle del módulo KY 022, el PIN con letra S es el que va a Arduino, el - a GND y el de en medio a VCC

 

El emisor de infrarrojos sería el mando de nuestra TV o algún tipo de mando o control remoto parecido que permite enviar la señal a una frecuencia de unos 38 Khz. La "jaula metálica" del sensor tiene como función principal aislar al sensor de otras fuentes de radiación infrarroja y permite sintonizar solo la radiación que se emite a 38 khz que es la frecuencia que utilizan los distintos fabricantes y protocolos para este tipo de emisiones.

Podremos por tanto utilizar cualquier mando que emita una señal infrarroja para realizar nuestro proyecto. Al activar o pulsar cualquier botón, gracias a este receptor podremos "recoger" el código de la señal mandada por el botón pulsado, compararlo y realizar una acción: encender un led, finalizar una acción (un sketch) o a través de un módulo RELÉ como vimos en una anterior entrada cualquier electrodoméstico conectado a la red eléctrica CA de 220 V como ejemplos posibles. 


Diagrama de Conexión

En sí, el módulo no requiere nada más que de tres conexiones, dos para alimentación y uno para la señal que se procesará desde Arduino. En función del proyecto que queramos desarrollar podemos añadir más componentes y protoboard, pero para analizar el funcionamiento de una manera sencilla con este esquema de momento nos vale. Solo hemos conectado el pin de más a la izquierda (tiene símbolo -) a GND, el central a VCC y el de más a la derecha (tiene el símbolo S de signal) al pin número 11 de Arduino, se puede elegir cualquier otro.

Diagrama básico de conexión
 

Además de esto, como comentábamos anteriormente necesitaremos de un mando o control remoto que emita señal por infrarrojos como por ejemplo el mando de nuestra televisión, un mando de un android tv o similar.

Codigo

Debemos incluir e instalar la libreria irremote desarrollada por shirrif  en nuestro IDE de Arduino, y utilizar el siguiente sketch para obtener los valores que nos emite el control remoto mando que estemos usando, es decir para leer los valores de cualquier tecla que pulsemos en nuestro control remoto y mostrarla por el monitor serie (tenemos que abrirlo)

#include <IRremote.h>
#define IRSENSOR 12



IRrecv irrecv(IRSENSOR);
decode_results codigo; //instancia
 
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
irrecv.enableIRIn();//se inicializa la recepción de datos desde el módulo
}

void loop() {
  // put your main code here, to run repeatedly:
if(irrecv.decode(&codigo)){
  Serial.println(codigo.value,HEX);

  irrecv.resume(); //esta listo para recibir nuevos datos
 
}
delay(100);
}

Detalle de la salida del monitor Serie al pulsar el botón 1 de Nuestro mando

 Como ya tenemos el detalle del valor del botón con el número 1 podemos definirlo en nuestro sketch que quedará de la siguiente manera, para determinar que si se pulsa el botón 1 se lleve a cabo alguna acción

...

#define Boton_1 0xBF828CD5

....

 void loop() {
  // put your main code here, to run repeatedly:
if(irrecv.decode(&codigo)){
  Serial.println(codigo.value,HEX);
  if(codigo.value == Boton_1)
    Serial.println("Se ha pulsado botón 1");

  irrecv.resume(); //esta listo para recibir nuevos datos
 
}
delay(100);

Lo cual nos daría la siguiente salida en el monitor Serie

Acción al pulsar el botón "1" de nuestro mando: escribir un mensaje "Se ha pulsado botón 1"

 En ese condicional (if) en función de los componentes que hayamos conectado, podríamos realizar cualquier acción al pulsar ese botón, con lo que podríamos reaprovechar ese viejo mando que ya no usamos para realizar cualquier proyecto interesante pulsando sus botones y recepcionando el valor con este sensor como por ejemplo junto a un módulo relé encender luces, apagar ventiladores, etc

Y esto es todo,

Espero que te haya resultado útil

Gracias por tu tiempo y atención. 

Referencias

  • https://www.youtube.com/watch?v=gPmsGyOuowI