Styra din Tv, Dvd och ljud system med Arduino och Android (1 / 5 steg)
Steg 1: Skaffa koderna för knappar (I)
Första, vi måste för att få koderna för varje knapp på vår fjärrkontroll.
Så, bygga banan på bakbord som visas på figur.
IR-mottagaren TSOP 1738 har tre stift.
Först är utdata, ansluten till stift 11 i Arduino.
Andra går till Gnd, och den tredje den är kopplad till + 5V.
Hämta IrRemote bibliotek Skrivet av Ken Shirriff. Detta bibliotek låt oss både skicka och ta emot IR-fjärrkontroll koder i flera protokoll som Philips Nec, Philips RC5, RC6 och rå.
Vi har att ansluta en infraröd sensor som osp1738 till någon digital ingångsstift.
#include
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 problemet
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:");
} else 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 (& resultat))
{
Serial.println (results.value, HEX);
dump (& resultat);
irrecv.Resume(); Ta emot nästa värde
}
}