Receptor Infrarrojos IR HX1838
 |
Fig1. Modulo IR Keyes KY-022 HX1838
|
Te doy la bienvenida por visitar este sitio, creado para compartir el mutuo interés en la electrónica y en especial la programación de microcontroladores PIC, antes de empezar quiero recordarte que
estoy atento a cualquier sugerencia o critica constructiva relacionada con esta publicación, en la parte final dejo mis datos de contacto.
Hoy quiero mostrar como hacer la lectura de un control remoto por infrarrojos, para lo cual utilizaremos un modulo bastante común que se muestra en la figura 1. Este modulo se identifica con las letras KY-022 que están impresas en la PCB o también como HX1838 que es el código del receptor IR.
La
programación del microcontrolador se realizara utilizando el software de diseño MPLABX y el compilador de lenguaje C para PIC XC8 ambos
disponibles en la pagina de microchip de forma gratuita. Aquí dejo los enlaces de las
versiones utilizadas para nuestro ejemplo: <<MPLABX v6.20>> <<XC8 v2.45>> Mencionar que es necesario tener conocimientos mínimos de programación en lenguaje C y algunos conocimientos básicos sobre microcontroladores PIC16F.
Introducción al Tema
El acrónimo IR se refiere a la radiación electromagnética cuya longitud de onda es mayor que la luz visible, esta radiación se encuentra en la zona del espectro electromagnético conocido como Infrarrojo, <<Ver Espectro>>. y aunque esta radiación de luz esta presente en cualquier cuerpo con temperatura mayor al cero absoluto, la misma no es visible al ojo humano.
Una de las aplicaciones mas comunes de la luz IR son los controles a distancia o control remoto que vemos en nuestros televisores, esto nos permite comunicar dos circuitos electronicos sin utilizar cables, ya que los elementos de comunicación son un diodo LED para trasmitir y un foto-transistor para recibir, ambos diseñados para trabajar en la zona de radiación Infrarroja.
 |
Fig2. Dispositivos emisores y receptores IR
|
La teoría de como funciona la comunicación por infrarrojos se detallan en este excelente enlace <<Teoría de Operación>> por lo que te recomiendo hagas una lectura para una mejor comprensión del tema, además he utilizado como referencia principal en esta entrada, la pagina <SB-Projects>
El
principio básico de la comunicación IR entre el transmisor y el receptor se puede observar en la figura 3, donde vemos que el transmisor emite una señal portadora(ráfaga de pulsos) a una determinada frecuencia, en nuestro caso 38kHz, y el dispositivo receptor filtra y demodula esta señal entregando en su salida niveles lógicos correspondiente a la informacion que se envía desde el control, es decir el código IR.
 |
Fig3. Modulación IR TX-RX (https://www.sbprojects.net) |
Con relación al Protocolo IR NEC utilizado en nuestro circuito, no entraremos a profundidad con los detalles del mismo, así que haré referencia a los aspectos puntuales que necesitamos conocer para nuestro programa. Las siguientes figuras que explicare tienen como referencia el siguiente enlace. <SB-Projects> La modulación empleada en el protocolo NEC se conoce como modulación de pulso por distancia, cuya lógica binaria utilizada en cada bit o estado, se ven en la figura 4.
 |
Fig4. Lógica Binaria NEC (https://www.sbprojects.net) |
Como se menciono anteriormente cada dato del Protocolo NEC tiene un campo de dirección(ADDRES) y otro del comando(COMMAND), ambos con longitud de 8-bit que se envían de forma consecutiva un complemento adicional, por lo que al final se tiene un total de 32-bit en el receptor, la figura 5 ilustra claramente la composición de este protocolo.
 |
Fig5. Protocolo NEC |
Con relación al dispositivo transmisor el control remoto que viene con el kit utiliza una batería de 3V tipo moneda, y emite el código IR de 16-bit con su complemento (total 32-bit) cada vez que presionamos uno de sus pulsadores(KEY), entonces el microcontrolador recibirá esta informacion y recuperando los 16-bit correspondientes al campo Dirección y Comando. La lista completa de códigos IR se observan en la figura 6.
 |
Fig6. Control remoto y código asociado a cada pulsador |
Debe considerar que al tratarse de una comunicación que emite una señal de luz, esta debe debe llegar al receptor de forma directa o en todo caso a través de una superficie reflectante.
El dispositivo receptor se basa en el modulo HX1838 cuya estructura interna se observa en la figura 7 y en la que podemos destacar lo siguiente:
- Incorpora un foto-diodo y pre-amplificador
- Dispone de filtro interno de frecuencia 38kHz
- Protección contra EMI mejorada
- Utiliza voltaje de operación de 2.5 a 5.5V
- Inmunidad contra la luz ambiental
 |
Fig7. Estructura del receptor HX1838 |
Esquema del Circuito
El circuito de prueba que utilizaremos se muestra en la figura 8, donde se observa la conexión al receptor IR mediante el pin RB4, este pin sera configurado como una entrada de interrupción por cambio de estado INTRB y además tiene las luces LED conectados a los pines RB0-RB3, estas luces conmutaran su estado con cada pulsador presionado desde el control. Así mismo los datos recibidos y decodificados por el PIC16F887, se enviaran a través del puerto UART en un formato legible, es decir un mensaje de cuatro caracteres que representan el código IR.
 |
Fig6. Esquema del circuito PIC16F
|
Programación del PIC
Puesto que describir el funcionamiento de un programa de manera textual es bastante tedioso y a veces confuso, he creado un vídeo explicativo del código elaborado para este proyecto, donde menciono los ficheros y las funciones utilizadas en la comunicación IR, por lo que dejo
el enlace al repositorio github (https://github.com/pablinza) donde encontraras el proyecto completo creado con MPLABX para que puedas descargarlo y realizar tus propios ensayos. Vídeo Explicativo del programa
Si quieres ver como compilar e implementar los proyectos de este blog, elaborados con MPLABX mira este vídeo.<Compilando proyectos MPLABX>Conclusiones y Recomendaciones
Se
ha demostrado el funcionamiento adecuado del circuito que recibe y decodifica el código IR desde un control remoto utilizando el protocolo NEC.
Esta por demás mencionar la variedad de aplicaciones en las que puede hacer uso del control remoto con IR, por lo que únicamente dejo a
consideración algunos aspectos si estas en planes de utilizarlo en tu
proyecto electrónico.
- Te en claro que este tipo de control con IR tiene limitaciones de alcance, y mas si planeas utilizarlo en ambientes externos.
- Considera que el receptor no discriminara la fuente que emite la señal IR, por lo que cualquier persona con un dispositivo transmisor NEC podría controlar tu circuito receptor PIC16F.
Sin
mas que mencionar agradezco tu visita al blog y espero que el ejemplo
visto pueda ser útil en tu formación y el proyecto que desarrollas.
Atentamente, Pablo Zárate Arancibia email: pablinza@me.com / pablinzte@gmail.com, @pablinzar
Santa Cruz de la Sierra - Bolivia