Comunicación por Infrarrojos

ARDUINO Y RECEPTOR DE INFRARROJOS

Lo que me dispongo a realizar, es con la ayuda de un receptor de infrarrojos (TSOP4838) que obtuve de un helicóptero viejo y un par de componentes pasivos, comunicarme con Arduino a través de un mando a distancia. Casi todos los mandos a distancia por lo general utilizan el protocolo de comunicación NEC que más abajo explico.

TSOP4838

Para la comunicación mediante el protocolo NEC con Arduino hay varias librerías que son necesarias para realizar tal fin, yo he utilizado una que me da la posibilidad de recibir y emitir con el citado protocolo (IRremote).

El circuito que hay que realizar es muy sencillo y puede ser algo como lo que dibujo más abajo.

Esquema_TSOP4838

Una vez que lo tenemos, con un sencillo programa y utilizando el monitor de comunicación del Arduino, podremos saber el código de cada tecla de un mando que utilice el citado protocolo.

Protocolo de Funcionamiento NEC

http://wiki.altium.com/display/ADOH/NEC+Infrared+Transmission+Protocol

El protocolo de transmisión de IR NEC utiliza la codificación de distancia de impulsos de los bits de mensaje. Cada ráfaga de impulsos es 562.5μs de longitud, a una frecuencia portadora de 38 kHz. y de la siguiente manera:

      ‘0 ‘Lógico – un pulso de 562.5μs seguido por un espacio 562.5μs, con un tiempo de transmisión total de 1.125ms

     ‘1 ‘Lógico – un pulso de 562.5μs seguido por un espacio 1.6875ms, con un tiempo de transmisión total de 2,25 ms

Al transmitir o recibir códigos de control remoto utilizando el protocolo de transmisión de IR NEC, la transmisión/recepción funciona de manera óptima cuando la frecuencia de la portadora (utilizado para la modulación / demodulación) se establece en 38.222kHz.

Cuando se presiona una tecla del mando a distancia, el mensaje transmitido consiste en lo siguiente, en orden:

                     Una impulsos líder 9 ms.

                     Un espacio 4.5ms

                     La dirección de 8 bits para el dispositivo receptor

                     La inversa lógica de 8 bits de la dirección

                     El comando de 8 bits

                     La inversa lógica de 8 bits del comando

                     Un pulso 562.5μs última ráfaga para indicar el final de la transmisión del mensaje.

Para el envío de los cuatro bytes de bits de datos, se realiza enviado primero los  bit menos significativo.

NECMessageFrameTelegrama Ejemplo utilizando el protocolo de transmisión de IR NEC.

Un comando se transmite una sola vez, aun cuando la tecla del mando a distancia sigue siendo presionada, si se mantiene apretada la tecla en el mando a distancia, se emitirá un código de repetición, alrededor de 40 ms después de la ráfaga de impulsos que finalizó el último mensaje. Un código de repetición continuará siendo enviado a intervalos de 108ms, hasta que se libera la tecla.

NECMessageFrame_Repeticion

Códigos de repetición Ejemplo enviaron una tecla pulsada en el mando a distancia transmisor.

Protocolo extendido:

El protocolo NEC es tan ampliamente utilizado que pronto todas las direcciones posibles, se agotaron. Se sacrificó la redundancia de la dirección del rango de direcciones y se amplió de 256 posibles valores a aproximadamente 65000 valores diferentes (256 valores de la dirección del Protocolo extendido no son válidos porque son, de hecho, la forma normal de direccionamiento del protocolo de NEC. Cada vez que el byte bajo es el inverso exacto del byte alto no es una dirección válida extendida), de esta manera el rango de direcciones se amplió de 8 bits a 16 bits sin necesidad de cambiar cualquier otra propiedad del protocolo. La redundancia de comandos aún se conserva, por lo tanto cada dirección todavía puede manejar 256 comandos diferentes.

Esquema Eléctrico:

Esquema_TSOP4838

Esquema Práctico

infrarrojos_Practico

Código del Programa:

Codigo

Código fuente:

Infrarrojos.ino

Fotos

Mando

Mando utilizado

Foto_IR

Circuito utilizado

Ficha del Proyecto:

Infrarrojos_Ficha_13

Vídeo resumen:

Anuncios

Publicado el julio 14, 2013 en Arduino, Comunicacion Serie, Electrónica, Infrarrojos, Programación, Robótica. Añade a favoritos el enlace permanente. Deja un comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: