Paso 1: Obtener los códigos de los controles remotos. (I)
Primero se deben obtener los códigos de cada botón de la función quiera ser ejecutada. Por ejemplo, si se quiere situado/apagar, cambiar el volumen y modificar los canales de nuestro televisor desde la aplicación; Debemos entonces Sensory los códigos de los respectivos botones de nuestro televisor. De igual manera hacer lo mismo el de para control del DVD, equipo de sonido o aparato se quiera controlar.
Para ello, armamos el circuito según se muestra en la figura:
El receptor de infrarojos Tsop 1738 o equivalente tiene 3 pines;
El primero es la salida de señal y va conectado hacia el pin 11 del arduino (puede ser usado cualquier pin digital del arduino teniendo la unidad de configurarlo en el boceto).
El segundo pin va conectado a tierra.
El tercer pin va conectado a los + 5V.
Luego descargue la librería IrRemote escrita por Ken Shirriff, es la nos permitirá obtener los códigos y enviar los mismos en subrepticios Nec, Philips RC5, RC6 y crudo.
A continuación descargue (recomiendo mejor descargarla) o copie las siguientes líneas de código y cargue el bosquejo en el arduino:
#include IrRemote.h //Esto va entre los signos menor mayoy pero aca no los deja escribir.
int RECV_PIN = 11;
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
void setup()
{
Serial.Begin(9600);
irrecv.enableIRIn(); Inicio del receptor
}
Volcados hacia fuera de la estructura decode_results.
Llamar a esto después de IRrecv::decode()
void * para solucionar problema de compilador //void dump(void *v)
{ /
/ decode_results * resultados = (decode_results *) v
void dump(decode_results *results)
{
int cuenta = resultados -> rawlen;
Si (resultados -> decode_type == desconocido)
{Serial.print ("codificación desconocido:");}
else if (resultados -> decode_type == NEC)
{Serial.print ("Decoded NEC:");}
else if (resultados -> decode_type == SONY)
{Serial.print ("Decoded SONY:");}
else if (resultados -> decode_type == RC5)
{Serial.print ("Decoded RC5:");}
else if (resultados -> decode_type == RC6)
{Serial.print ("Decoded RC6:");}
else if (resultados -> decode_type == PANASONIC)
{Serial.print ("Decoded PANASONIC – dirección:");
Serial.Print (resultados -> panasonicAddress, hexagonal);
Serial.Print ("valor:");}
else if (resultados -> decode_type == JVC)
{Serial.print ("Decoded JVC:");}
Serial.Print (resultados -> valor, hexagonal);
Serial.Print ("('');
Serial.Print (resultados -> bits, DEC);
Serial.println ("bits)");
Serial.Print ("Raw ('');
Serial.Print (cuenta, DEC);
Serial.Print("):");
para (int i = 0; i < cuenta; i ++)
{Si ((i % 2) == 1)
{Serial.print (resultados -> rawbuf [i] * USECPERTICK, DEC);}
otra cosa
{
Serial.Print (-resultados (int) -> rawbuf [i] * USECPERTICK, DEC); }
Serial.Print("");
}
Serial.println("");
}
void loop()
{if
(irrecv.decode(&results))
{
Serial.println (results.value, hexagonal);
descarga (y resultados); irrecv.resume();
Recibir el siguiente valor
}
}