Arduino. Control remoto TV

El Arduino puede interactuar con casi cualquier dispositivo que utilice algún tipo de mando a distancia, incluyendo televisores, equipos de audio, cámaras, puertas de garaje, electrodomésticos e incluso juguetes de radio control.  Un control remoto trabajar mediante el envío de datos digitales desde un transmisor a un receptor utilizando la luz infrarroja (IR) o la tecnología de radio inalámbrica. Los distintos protocolos (patrones de la señal) se utiliza para traducir pulsaciones de teclas en una señal digital, los patrones producen códigos únicos.
Los códigos son típicamente de 12 a 32 bits (mensaje de datos). Cada tecla del mando a distancia es asociado con un código específico que se transmite cuando se presiona la tecla. Si la tecla se mantiene presionada, el control remoto envía generalmente el mismo código en repetidas ocasiones.
En este ejemplo utilizamos un módulo receptor de infrarrojos de bajo costo para detectar la señal y proporcionar una salida digital que puede leer Arduino. La salida digital es entonces decodificada por una biblioteca IrRemote, escrita por Ken Shirriff y puede ser descargada aqui
Para instalar la biblioteca, copie y peguela en el folder bibliotecas de su carpeta Arduino.

En respuesta a un control remoto infrarrojo
Arduino puede responder a las señales de infrarrojos a distancia utilizando un módulo receptor de infrarrojos. Los dispositivos más comunes son la TSOP4838, PNA4602 y TSOP2438. Este ejemplo utiliza la biblioteca IrRemote mencionada anteriormente, conecte el módulo de receptor de infrarrojos de acuerdo al componente que ocupe. En este esquema es para los receptores TSOP4838 o PNA4602,  se activará el LED integrado en Arduino al presionar cualquier botón de un control de infrarrojos.

receptoresIR

Conexion:

Codigo:
/*
IR_remote_tester_and_detector
Connect the output pin of Infrared remote to DIG 2
Connect an LED to pin 13.
*/
#include <IRremote.h>
const int irReceiverPin = 2;
const int ledPin = 13;
IRrecv irrecv(irReceiverPin); //crea  objeto IRrecv
decode_results decodedSignal; //guarda la señal del sensor IR

void setup ( ) {
pinMode(ledPin, OUTPUT);
irrecv.enableIRIn ( ); // abilita el objeto IRrecv
}
boolean lightState = false; // estado de LED
unsigned long last = millis(); //remember when we last received an IRmessage

void loop()
{
if (irrecv.decode(&decodedSignal) == true) //this is true if a message has been received

{
if (millis() – last > 250) { //has it been 1/4 sec since last message
lightState = !lightState; //toggle the LED
digitalWrite(ledPin, lightState);
}
last = millis();
irrecv.resume(); // watch out for another message
}
}
# Include <IRremote.h> es la biblioteca para la decodificacion de la señal,  la línea
IRrecv irrecv (irReceiverPin), crea un objeto IRrecv irrecv para recibir señales de un módulo receptor de infrarrojos conectado a irReceiverPin (pin 2 en el esquema). Se utiliza el objeto irrecv para acceder a la señal del receptor de infrarrojos, las respuestas descodificados proporcionados por la biblioteca se almacenan en la veriable decode_results variable. El objeto receptor es inicializado con la línea de irrecv.enableIRIn ( );.
Si se recibe un mensaje, el código cambia el estado del LED, el LED parpadea cuando cualquier botón del contronl remoto se presiona, la biblioteca necesita que le indiquen que continue con el monitoreo de las señales, y esto se logra con la línea de irrecv.resume ();.

2 comentarios en “Arduino. Control remoto TV

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 )

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 )

Google+ photo

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

Conectando a %s