VLC Media Player-kontroll med hjälp av IR-fjärr (7 / 7 steg)
Steg 7: Program 2
#include
int RECV_PIN = A5;
int BUTTON_PIN = 12;
int STATUS_PIN = 9;
IRrecv irrecv(RECV_PIN);
IRsend irsend;
decode_results resultat.
void setup()
{Keyboard.begin();
Serial.BEGIN(9600);
irrecv.enableIRIn(); Starta mottagaren
pinMode (BUTTON_PIN, indata);
pinMode (STATUS_PIN, OUTPUT);
digitalWrite(STATUS_PIN,LOW);
}
Lagring för inspelade koden
int codeType = -1; Typ av kod
osignerade långa codeValue; Värdet om inte raw
unsigned int rawCodes [RAWBUF]; Varaktigheterna om raw
int codeLen; Längden på koden
int växla = 0; RC5/6 växla staten
Lagrar koden för senare uppspelning
De flesta av denna kod är bara loggning
void storeCode(decode_results *results) {
codeType = resultat -> decode_type;
int count = resultat -> rawlen;
om (codeType == NEC) {
Serial.Print ("fick NEC:");
om (resultat -> värde == upprepning) {
Inte registrera en NEC Repetera värdet som är värdelös.
Serial.println ("repeat; ignorerar.");
hemkomst.
}
}
Serial.println (resultat -> värde, HEX);
Serial.println (resultat -> värde).
codeValue = resultat -> värde;
codeLen = resultat -> bitar;
om (codeValue == 3724611569) //play
{Keyboard.write(0x70);}
annat if (codeValue == 3724611580) //play/pause
{Keyboard.write(0x20);}
annat if (codeValue == 3724611540) //mute
{Keyboard.write(0x6D);}
annat if (codeValue == 3724611568) //stop
{Keyboard.write(0x73);}
annat if (codeValue == 3724611526) //volume upp
{Keyboard.press(0x80);
Keyboard.Press(0xDA);
Delay(15);
Keyboard.releaseAll();}
annat if (codeValue == 3724611558) //volume ner
{Keyboard.press(0x80);
Keyboard.Press(0xD9);
Delay(15);
Keyboard.releaseAll();}
annat if (codeValue == 3724611520) //forward
{Keyboard.press(0x81);
Keyboard.Press(0xD7);
Keyboard.releaseAll();}
annat if (codeValue == 3724611552) //backward
{Keyboard.press(0x81);
Keyboard.Press(0xD8);
Keyboard.releaseAll();}
annat if (codeValue == 3724611574) //speedup
{Keyboard.write(0x5D);}
annat if (codeValue == 3724611541) //speed ner
{Keyboard.write(0x5B);}
}
int lastButtonState;
void loop() {
Om knappen nedtryckt, skicka koden.
om (irrecv.decode (& resultat)) {
digitalWrite (STATUS_PIN, hög);
storeCode(&results);
irrecv.Resume(); återuppta mottagare
digitalWrite (STATUS_PIN, låg);
}
}