lunes, 17 de septiembre de 2018

Proyecto RC5 Infrarrojo, PIC 16F84A

Con este proyecto podemos utilizar cualquier control remoto que utilice el protocolo RC5 de PHILIPS, ya sea de un televisor, un equipo de sonido o DVD. Vamos a visualizar los comandos asociados al botón pulsado y ver un mensaje por cada uno en una pantalla Lcd.






   Lista de componentes 

  • 01 PIC 16F84A
  • 01 Cristal de 4MHz
  • 01 IC 40106
  • 01 Lcd 16x2
  • 01 TSOP 1738
  • 01 Led
  • 01 Potenciómetro de 5K
  • 01 Resistencia de 100 ohm, 220 ohm y 330 ohm
  • 01 Condensador de 220uF/16v
  • 02 Condensadores de 22pF
  • 01 Condensador de 0.1uF

   Esquema 

Proyecto RC5 Control Infrarrojo, PIC 16F84A


   Funcionamiento 

El TSOP 1738 recibe las ráfagas de 38KHz provenientes del control remoto y entrega un tren de pulsos cuya duración  depende del tiempo en que se mantiene una de esas ráfagas de 38KHz, si la ráfaga demora 5ms, entonces entrega una señal baja de 5ms, si no hay ráfaga, entrega una señal en alto; esta salida es invertida con respecto a lo esperado, por eso utilizamos un inversor 40106, el pin de salida de este integrado va al PIC 16F84A para procesar la señal y a un led para visualizar la llegada de pulsos.
El mensaje a mostrar en el Lcd depende del botón pulsado en el control.

   Programa 

EL programa está en lenguajes ensamblador, también necesitas las librerías de retardo para 4MHz, el Lcd y conversión binario a decimal.
La mayoría de controles remoto utilizan ráfagas alrededor de los 48KHz para enviar sus códigos, lo que varía de fabricante a fabricante es el protocolo de comunicación, es decir, la manera en que se codifican los códigos con esas ráfagas de 38KHz.
En el caso del protocolo RC5 cada periodo es de 1778us, si la primera mitad está en alto y la otra mitad en bajo, significa que es un '0' lógico.
Si la primera mitad está en bajo y la otra mitad en alto, significa que es un '1' lógico.
Cada periodo es un bit. El orden correcto de datos es:
2 bits de Start (11), un bit Toggle(1 o 0), 5 bits de dirección y 6 bits de comando.
Para no complicar demasiado el programa, solo nos aseguramos el bit start que son dos '1' lógicos, si es así dejamos pasar un bit de 'toogle', luego leemos y guardamos los 5 bits de dirección y los 6 de comando.
En este caso solo tomamos en cuenta los botones del 1 al 5 para mostrar un mensaje diferente en la primera línea. Pero en la segunda línea siempre se muestra el código del comando recibido, de este modo podemos añadirlo a nuestra lista de botones reconocidos y hacer otras cosas.

   Consejos de Funky 

  • En lugar de usar un potenciómetro de 5K, para el contraste del Lcd, puedes colocar una resistencia fija entre el pin 3 y tierra. El valor de la resistencia depende del Lcd, pero puedes probar con valores entre 1K y 4.7K.
  • Asegúrate de que las librerías para el Lcd, los retardos y la conversión binario a BCD se encuentren en la misma carpeta del código principal en ensamblador antes de compilarlo.
  • Ten cuidado con las fuentes de luz y calor que tengas cerca a tu circuito, las emisiones infrarrojas de cualquier dispositivo podrían afectar tu receptor, sobretodo los focos incandescentes.

No hay comentarios:

Publicar un comentario