KY-005

Esta placa emisora está basada en un LED infrarrojo IR que es capaz de emitir en la banda de 850nm

Tendríamos a grandes rasgos una placa que:
- Es capaz de emitir luz infrarroja a 850nm de longitud de onda.
- EL LED va conectado directamente a las patillas de la placa.
- Acepta una alimentación de 3,5V a 5V.

CARACTERISTICAS

Las características principales de esta placa son:
- LED emisor de 5mm
- No requiere componentes externos
- Rango de alimentación entre 3,5V y 5V
- Rango de temperatura de uso entre -25ºC y +80ºC
- Consumo entre 30mA y 60mA
- Potencia de emisión de 90mW

PINEADO

El pineado de esta placa es:

1 : Este pin es la entrada de la placa y va conectado directamente al ánodo del LED infrarrojo.

2 : Este pin es la entrada positiva que alimenta la placa. En este caso no va conectada a ningún sitio

3 : Este pin es la entrada negativa que alimenta la placa. Alimenta directamente al kátodo del LED infrarrojo.















LED's INDICADORES

No tenemos ningún led indicador en esta placa sensora

PROBEMOS EL SENSOR KY-005

Vamos a montar en una placa protoboard el sensor KY-005 y conectarlo a un Arduino UNO. Usaremos la librería IRremote que esta incluida dentro del propio IDE (a lo mejor hay que descargarla) para emitir cógidos válidos de fabricantes. En nuestro caso vamos a emitir cógidos Sony.

Como información vamos a poner los códigos Sony mas comunes:

BOTÓN
Dirección (DEC)
Comando (DEC)
Dato 12bits (HEX)
Power 1 21 0xA90
Menú 1 96 0x070
Ariba 1 116 0x2F0
Abajo 1 117 0xAF0
Izquierda 1 52 0x2D0
Derecha 1 51 0xCD0
1 1 0 0x010
2 1 1 0x810
3 1 2 0x410
4 1 3 0xC10
5 1 4 0x210
6 1 5 0xA10
7 1 6 0x610
8 1 7 0xE10
9 1 8 0x110
0 1 9 0x910

NECESITAREMOS

Placa Emisora KY-005

Placa protoboard pequeña

Arduino UNO R3

Diodo LED verde de 3mm, resistencias de 220Ω - 2K7 y 1/4W y pulsadores para protoboard

Cableado macho-macho o hilo rígido que entre en la protoboard

Cable USB corto de USB tipo A a USB tipo B

Móvil o cámara antigua sin filtro de infrarrojos. En mi caso un iPhone 4S



ESQUEMA

En es esquema podemos ver:

- La placa Arduino UNO se encarga de alimentar la protoboard
- La placa emisora KY-005 está conectada en la protoboard.
- El led y la resistencia R1 están conectados a la alimentación de +5V para indicarnos cuando tiene alimentación la protoboard
- El pin de la placa emisora de entrada está conectado al pin 3 del Arduino UNO (si fuera un Arduino Mega habría que conectarlo al pin 9)
- Tenemos dos pulsadores para emitir dos códigos diferentes. Power y Menú, de la tabla de códigos Sony
- La alimentación de todo el sistema se realiza a través del puerto USB

Para calcular la resistencia del LED solo tenemos que ver el voltaje que va a caer en la resistencia y dividirlo entre la intensidad que queremos que pase por el LED.
La tensión que tiene la resistencia sería el voltaje total menos el voltaje que se queda el LED rojo (aprox. 1,5V). Esto nos deja 5V-1,5V = 3,5V caen en la resistencia.
Vamos a fijar una intensidad por el LED de 15mA (suficientes para que se encienda a buen brillo un LED rojo). Tendriamos entonces una resistencia de 3,5V/0,015A = 233,33Ω
El valor mas cercano al calculado es de 220Ω (Rojo-Rojo-Marrón). Las resistencias comunes de 1/4W deberían servir, ya que la potencia disipada por nuestra resistencia será de 3,5Vx0,015A = 0,05W, valor muy por debajo de los 0,25W máximos que es capaz la resistencia de disipar.

Las resistencias pull-down de los pulsadores pueden ser entre 1KΩ y 10KΩ. Pusimos en este caso resistencias de 2K7 y 1/4W.


Vamos a ver algunas imágenes mas de cerca del montaje

Detalle de la conexión de la placa emisora

Detalle de la conexión de la placa emisora y los pulsadores

Detalle de la conexión los pulsadores

Detalle de la conexión del LED y la resistencia

Detalle de la conexión de la placa Arduino UNO

PROGRAMACIÓN

¿Qué vamos a programar?, Vamos a cargar la librería IRremote en nuestro Sketch (si no la tenemos añadida en la lista de librerías disponibles ahora mas abajo veremos como añadirla). Después vamos a supervisar los pulsadores y dependiendo del pulsado mandaremos al Led IR un código u otro.
Vamos a enviar al visor serie del IDE mensajes de los códigos que estamos enviando para llevar un control.
Ahora vamos a añadir a nuestro IDE la librería IRremote. No es necesario descargarla de internet por separado, ya que se puede descargar desde el gestor de librerías.

Pulsamos "Programa - Incluir Librería" y vemos que no tenemos la librería IRremote

Pulsamos "Programa - Incluir Librería - Administrar Biliotecas"

Se abre el gestor de librerías y filtramos con "irremote" para buscar esta librería

Nos aparece la librería en su versión 2.2.3. Pulsamos Instalar

Comprobamos que la librería a aparecido


A continuación tenemos el código fuente del Sketch terminado para consultarlo. Se puede escribir copiándolo o descargarlo desde aquí

CÓDIGO ARDUINO
/*
 * AFPT - Arduino Fácil Para Todos
 * 
 * Prueba Arduino UNO + KY005
 * 
 * Modulo_KY-005.ino
 * 
 * www.fantasystudios.es/arduino
 * 
 * Creado el 19 de Abril de 2020
 * Por Manuel Peláez
 * 
 */


//Cargamos las librerias necesarias
#include <IRremote.h>
#include <IRremoteInt.h>

//Inicializamos la libreria como emisor IR
IRsend irsend;

//declaramos las variables con las entradas de los pulsadores
int pulsador_1 = 6;
int pulsador_2 = 7;

//declaramos las variables que usaremos para leer el estado de los pulsadores
int estado_pulsador_1 = 0;
int estado_pulsador_2 = 0;


void setup() {
  // put your setup code here, to run once:
  //inicializamos la comunicación serie a 9600 baudios
  Serial.begin(9600);

  Serial.println("Emisor inicializado");

  //configuramos los pines de entrada y el pin de salida 13
  pinMode(pulsador_1, INPUT);
  pinMode(pulsador_2, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);
}


void loop() {
  // put your main code here, to run repeatedly:
  //leemos el estado de los pulsadores y lo almacenamos
  estado_pulsador_1 = digitalRead(pulsador_1);
  estado_pulsador_2 = digitalRead(pulsador_2);

  //Si los dos pulsadores estan pulsados marcamos el error y no ejecutamos el programa
  if (estado_pulsador_1 & estado_pulsador_2) {
    Serial.println("Error, pulsados los dos botones");
  }
  //Si no hemos pulsado ningun pulsador o solo uno seguimos con el programa
  else {
    //Si hemos pulsado en pulsador 1 mandamos el codigo a90 o POWER en el codigo IR Sony
    if (estado_pulsador_1) {
    digitalWrite(LED_BUILTIN, HIGH);                              //encendemos el led de la salida 13
    Serial.println("Emisión código 0xa90 - POWER para TV Sony");  //mandamos el mensaje de emision al puerto serie
    //enviamos el codigo a90 tres veces con una pausa de 100ms entre ellas
    for(int i=0;i<3;i++) {
      irsend.sendSony(0xa90, 12);
      delay(100);
      }
    }
    //Si hemos pulsado en pulsador 2 mandamos el codigo a70 o MENU en el codigo IR Sony
    else if (estado_pulsador_2) {
      digitalWrite(LED_BUILTIN, HIGH);                            //encendemos el led de la salida 13
      Serial.println("Emisión código 0x070 - MENU para TV Sony"); //mandamos el mensaje de emision al puerto serie
      //enviamos el codigo 070 tres veces con una pausa de 100ms entre ellas
      for(int i=0;i<3;i++) {
        irsend.sendSony(0x070, 12);
        delay(100);
        }
    }
    //Si no hemos pulsado ningun pulsador apagamos el led de la salida 13 y no enviamos nada por IR
    else {
    digitalWrite(LED_BUILTIN, LOW);
    }
  }

delay(1);   // con esto ganamos estabilidad en la ejecución del programa

}

CÓDIGO ARDUINO

PRUEBA DE EMISIÓN IR

Vamos a comprobar que realmente el LED IR está funcionando y que estamos transmitiendo.
El ojo humano no puede ver la luz infrarroja, por lo que debemos dar un rodeo y buscar una manera de verla indirectamente. Las cámaras modernas, tanto de fotografía como los móviles llevan incorporado delante del sensor un filtro infrarrojo, por lo que no nos sirven para nuestro propósito. Sin embargo algunas cámaras y móviles antiguos no llevan este filtro. En el caso de los móviles de Apple, los iPhone pusieron el filtro a partir del iPhone 4S en adelante. Desempolvé un iPhone 4 que tenía guardado y sirvió perfectamente para esta prueba.

En el siguiente video podréis ver como el iPhone 4 detecta el parpadeo de la luz IR como una luz violeta y un iPhone X no es capaz de ver nada. Esta prueba sirve con cualquier mando a distancia, si queremos comprobar si el mando está funcionando correctamente (por lo menos que el LED está funcionando y enviando códigos).

Video con todo el proceso completo.