You are on page 1of 5

Controlar el televisor, Dvd y equipo de sonido

desde el celular y Arduino.


Hola, en esta oportunidad quiero compartirles este proyecto que quise
realizar desde que conoc el mundo del arduino. Se trata de poder
controlar nuestro televisor, reproductor de dvd y equipo de sonido con
arduino desde una aplicacin en nuestro celular con Android. Esto es
una base para la domtica, ya que ustedes podran ampliar el rango de
dispositivos a ser controlados como luces, ventiladores, aires
acondicionados, etc.

El proyecto consta de dos partes:

La primera en la cual se arma el circuito que nos permitir obtener los


cdigos de cada botn del control remoto que controla a cada
electrodomestico. Y el segundo en el cual es el proyecto en s, el del
controlador.

La lista de materiales es la siguiente:

(1) Tarjeta arduino uno o cualquier versin.


(1) Mdulo de bluetooth HC-05.
(1) Mdulo receptor de infrarojos TSOP 1738 o equivalente.(Usado
slo para recibir los cdigos, no en el proyecto final)
(2) Led's infrarojos.
(2) Resistencias de 220 ohm
Cables de conexin.
Celular con sistema operativo android.

La cantidad de leds infrarojos depende de la disposicin de sus

aparatos , en mi caso el televisor y el dvd estaban en lamisma lnea de


manera que un led era suficiente para controlarlos a ambos mientras
que el equipo de audio se encontraba a cierta distancia y por eso me
toc usar otro led que apuntara directamente hacie el sensor del
equipo.
Step 1: Obtener los cdigos de los controles remotos.(I)
Picture of Obtener los cdigos de los controles remotos.(I)

Primero se deben obtener los cdigos de cada botn de la funcin que


quiera ser ejecutada. Por ejemplo, si se quiere encender/apagar,
cambiar el volumen y modificar los canales de nuestro televisor desde
la App; debemos entonces identificar los cdigos de los respectivos
botones de nuestro televisor. De igual manera hacer lo mismo para el
control del DVD, equipo de sonido o aparato que se quiera controlar.
Para ello, armamos el circuito segn se muestra en la figura:
El receptor de infrarojos Tsop 1738 o equivalente tiene 3 pines;
El primero es la salida de seal y va conectado hacia el pin 11 del
arduino ( puede ser usado cualquier pin digital del arduino teniendo la
precaucin de configurarlo en el sketch).
El segundo pin va conectado a GND.
El tercer pin va conectado a los +5V.
Luego descargue la librera IrRemote escrita por Ken Shirriff, que es la
que nos permitir obtener los cdigos y enviar los mismos en
protocolos Nec, Philips RC5, RC6 y Raw.
A continuacin descargue (recomiendo mejor descargarla )o copie las
siguientes lneas de cdigo y cargue el sketch en el arduino:
#include IrRemote.h //Esto va entre los signos mayoy menor que pero
aca no los deja escribir.
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
// Dumps out the decode_results structure.

// Call this after IRrecv::decode()


// void * to work around compiler issue //void dump(void *v)
{/
/ decode_results *results = (decode_results *)v
void dump(decode_results *results)
{
int count = results->rawlen;
if (results->decode_type == UNKNOWN)
{ Serial.print("Unknown encoding: "); }
else if (results->decode_type == NEC)
{ Serial.print("Decoded NEC: "); }
else if (results->decode_type == SONY)
{ Serial.print("Decoded SONY: "); }
else if (results->decode_type == RC5)
{ Serial.print("Decoded RC5: "); }
else if (results->decode_type == RC6)
{ Serial.print("Decoded RC6: "); }
else if (results->decode_type == PANASONIC)
{ Serial.print("Decoded PANASONIC Address: ");
Serial.print(results->panasonicAddress,HEX);
Serial.print(" Value: "); }
else if (results->decode_type == JVC)
{ Serial.print("Decoded JVC: "); }
Serial.print(results->value, HEX);
Serial.print(" (");
Serial.print(results->bits, DEC);
Serial.println(" bits)");

Serial.print("Raw (");
Serial.print(count, DEC);
Serial.print("): ");
for (int i = 0; i < count; i++)
{ if ((i % 2) == 1)
{ Serial.print(results->rawbuf[i]*USECPERTICK, DEC); }
else
{
Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); }
Serial.print(" ");
}
Serial.println("");
}
void loop()
{ if
(irrecv.decode(&results))
{
Serial.println(results.value, HEX);
dump(&results); irrecv.resume();
// Receive the next value
}
}

You might also like