KY-022

Esta placa sensora está basada en un chip receptor de infrarrojos (IR) modelo TL1838 que es capaz de recibir transmisiones IR y mandar una señal conformada por su salida.

Tendríamos a grandes rasgos una placa que:
- Tensión de funcionamiento entre 2,7V y 5,5V
- Consumo entre 0,4mA y 1,5mA
- Frecuencia de recepción entre 30Khz y 60Khz (Típica: 37,9Khz)
- Distancia de recepción máxima entre 8m y 18m

CARACTERISTICAS

Las características principales de esta placa son:
- Chip TL1838
- Tensión de funcionamiento entre 2,7V y 5,5V
- Consumo entre 0,4mA y 1,5mA
- Frecuencia de recepción entre 30Khz y 60Khz (Típica: 37,9Khz)
- Distancia de recepción máxima entre 8m y 18m
- No requiere componentes externos
- Angulo de visión típico de ±45º
- Salida activa a nivel bajo

Si queremos ver la hoja de características completa del TL1838, podemos consultar su datasheet


PINEADO

El pineado de esta placa es:

1 : Este pin es la entrada negativa que alimenta la placa. Alimenta directamente al TL1838.

2 : Este pin es la entrada positiva que alimenta la placa. Tiene que estar entre +2,7V y +5,5V. Alimenta directamente al TL1838 y al ánodo del led smd incluido en la placa.

3 : Este pin es la salida de datos del sensor. Está conectada directamente al TL1838 y además al led de control SMD que tenemos en la placa. Cuando el led se ilumine sabremos que el sensor esta recibiendo una señal IR válida dentro del rango de frecuencias correctas.















LED's INDICADORES

Tenemos un led SMD que nos indica la recepción de señales válidas. Está conectado al pin de salida y a la alimentación positiva.

PROBEMOS EL SENSOR KY-022

Vamos a montar en una placa protoboard el sensor KY-001 y conectarlo a un Arduino Mega. Mandaremos la temperatura al puerto serie USB del Arduino Mega y así podremos ver la medida en el visor serie el IDE. Además de la temperatura enviaremos también todo tipo de datos de control que nos ayudarán a entender el funcionamiento del sensor y como se comunica con el Arduino.

NECESITAREMOS

Placa sensora KY-022

Placa protoboard grande

Arduino Mega 2560

Diodo LED rojo de 5mm y una resistencia que calcularemos de 220Ω y 1/4W

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

Soporte AFTP para Arduino Mega y protoboard grande

Cable USB corto de USB tipo A a USB tipo B

Mando Sony, si es posible. Si no valdría cualquier mando IR

Opcionalmente vamos a probar el montaje del KY-005 con este receptor

ESQUEMA

En es esquema podemos ver:

- La placa Arduino Mega se encarga de alimentar la protoboard
- La placa sensora KY-022 está conectada en la protoboard y conectada a la alimentación de +5V
- El led y la resistencia están conectados a la alimentación de +5V para indicarnos cuando tiene alimentación la protoboard
- El pin de la placa sensora de entrada/salida está conectado al pin 11 del Arduino Mega (podemos elegir cualquiera)
- 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.


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

Detalle de la conexión de la placa sensora

Detalle de la conexión de la placa sensora

Detalle de la conexión del LED y la resistencia

Detalle de la conexión de la placa Arduino Mega

Si tenemos montado el proyecto con el emisor IR, KY-005 lo usaremos para emitir

Si no tenemos el KY-005, usaremos un mando Sony

O cualquier mando de infrarrojos que tengamos a mano...

PROGRAMACIÓN

¿Qué vamos a programar?, una lectura continua del receptor IR. La librería interpretara los códigos que lleguen y nos dará una salida hexadecimal. Mandaremos el resultado al puerto serie para que sea mostrado en el visor serie del IDE
Necesitamos tener instalado en el IDE la librería IRremote. Esta librería es descargable desde el propio IDE y su gestor de librerías. Si no la tenemos instalada consultar el KY-005 y podréis ver como se instala paso a paso

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 MEGA + KY022
 * 
 * Modulo_KY-022.ino
 * 
 * www.fantasystudios.es/arduino
 * 
 * Creado el 19 de Abril de 2020
 * Por Manuel Peláez
 * 
 */


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

//declaramos las variables con la entrada del sensor de IR
int pin_receptor = 11;

//informo a la libreria el pin donde esta conectado el receptor IR
IRrecv irrecv(pin_receptor);

//configuro la variable que guardara el codigo recibido
decode_results resultado;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);                       //inicializamos la comunicación serie a 9600 baudios
  pinMode(LED_BUILTIN, OUTPUT);             //configuramos el pin de salida 13
  irrecv.enableIRIn();                      //informo a la libreria que empiece a recibir codigos
  Serial.println("Receptor inicializado");  //mando el codigo de inicio al puerto serie
}


void loop() {
  // put your main code here, to run repeatedly:
  //comprobamos si hemos recibido algun codigo
  if (irrecv.decode(&resultado)) {
    Serial.print("Código recibido: ");      //mandamos este mensaje al puerto serie
    Serial.println(resultado.value, HEX);   //mandaos el codigo recibido
  
  irrecv.resume();                          //reinicia la libreria para recibir el siguiente codigo
  }

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

CÓDIGO ARDUINO

A continuación tenemos un video con todo el proceso completo.