Controlar el televisor, Dvd y equipo de sonido desde el celular y Arduino. (1 / 5 steg)
Steg 1: Obtener los rättfärdig de los controles remotos. (I)
Primero se deben obtener los rättfärdig de cada botón de la función 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 rättfärdig de los respectivos botones de nuestro televisor. De igual manera hacer lo mismo para el styr del DVD, equipo de sonido o aparato que se quiera controlar.
Para ello, armamos el circuito según se muestra sv la figura:
El-receptorn de infrarojos Tsop 1738 o equivalente tiene 3 pines;
El primero es la salida de señal y va conectado hacia el stift 11 del arduino (puede ser usado cualquier pin digital del arduino teniendo la precaución de configurarlo en el skiss).
El segundo pin va conectado en GND.
El tercer pin va conectado en los + 5V.
Luego descargue la librería IrRemote escrita por Ken Shirriff, que es la que nos permitirá obtener los rättfärdig y avundsvärd los mismos sv protocolos Nec Philips RC5, RC6 y Raw.
En continuación descargue (recomiendo mejor descargarla) o copie las siguientes líneas de código y cargue el skissa en el arduino:
#include IrRemote.h //Esto va entre los signos mayoy menor que pero aca ingen los deja escribir.
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results resultat.
void setup()
{
Serial.BEGIN(9600);
irrecv.enableIRIn(); Starta mottagaren
}
Dumpar ut decode_results struktur.
Kalla detta efter IRrecv::decode()
void * Undvik compiler frågan //void dump(void *v)
{ /
/ decode_results * resultat = (decode_results *) v
void dump(decode_results *results)
{
int count = resultat -> rawlen;
om (resultat -> decode_type == okänd)
{Serial.print ("okänd kodning:");}
annars om (resultat -> decode_type == NEC)
{Serial.print ("avkodas NEC:");}
annars om (resultat -> decode_type == SONY)
{Serial.print ("avkodas SONY:");}
annars om (resultat -> decode_type == RC5)
{Serial.print ("avkodas RC5:");}
annars om (resultat -> decode_type == RC6)
{Serial.print ("avkodas RC6:");}
annars om (resultat -> decode_type == PANASONIC)
{Serial.print ("avkodas PANASONIC-adress:");
Serial.Print (resultat -> panasonicAddress, HEX);
Serial.Print ("värde:");}
annars om (resultat -> decode_type == JVC)
{Serial.print ("avkodas JVC:");}
Serial.Print (resultat -> värde, HEX);
Serial.Print ("(");
Serial.Print (resultat -> bitar, DEC).
Serial.println ("bitar)");
Serial.Print ("Raw (");
Serial.Print (antal, DEC);
Serial.Print("):");
för (int jag = 0; jag < greve; i ++)
{om ((i % 2) == 1)
{Serial.print (resultat -> rawbuf [i] * USECPERTICK, DEC);}
annat
{
Serial.Print (-(int) resultat -> rawbuf [i] * USECPERTICK, DEC); }
Serial.Print("");
}
Serial.println("");
}
void loop()
{om
(irrecv.decode(&results))
{
Serial.println (results.value, HEX);
dump (& resultat); irrecv.Resume();
Ta emot nästa värde
}
}