Étape 7: Programme 2
#include
int RECV_PIN = A5 ;
int BUTTON_PIN = 12 ;
int STATUS_PIN = 9 ;
IRrecv irrecv(RECV_PIN) ;
IRsend irsend ;
résultats de la decode_results ;
void setup()
{Keyboard.begin() ;
Serial.Begin(9600) ;
irrecv.enableIRIn() ; Démarrer le récepteur
pinMode (entrée, BUTTON_PIN) ;
pinMode (STATUS_PIN, sortie) ;
digitalWrite(STATUS_PIN,LOW) ;
}
Stockage pour obtenir le code enregistré
codeType int = -1 ; Le type de code
unsigned long codeValue ; La valeur de code si pas cru
unsigned int rawCodes [RAWBUF] ; Les durées si cru
int codeLen ; La longueur du code
activer/désactiver int = 0 ; L’état de bascule RC5/6
Stocke le code pour une lecture ultérieure
La plupart de ce code est juste l’exploitation forestière
void storeCode(decode_results *results) {}
codeType = résultats -> decode_type ;
int count = résultats -> rawlen ;
Si (codeType == NEC) {}
Serial.Print ("reçu NEC:") ;
Si (résultats -> value == REPEAT) {}
N’enregistrez pas une valeur de répétition NEC car c’est inutile.
Serial.println (« répétition ; ignorant.") ;
retour ;
}
}
Serial.println (résultats -> value, HEX) ;
Serial.println (résultats -> valeur) ;
codeValue = résultats -> value ;
codeLen = résultats -> mèches ;
Si (codeValue == 3724611569) //play
{Keyboard.write(0x70);}
ElseIf (codeValue == 3724611580) //play/pause
{Keyboard.write(0x20);}
ElseIf (codeValue == 3724611540) //mute
{Keyboard.write(0x6D);}
ElseIf (codeValue == 3724611568) //stop
{Keyboard.write(0x73);}
ElseIf (codeValue == 3724611526) //volume vers le haut
{Keyboard.press(0x80) ;
Keyboard.Press(0xDA) ;
Delay(15) ;
Keyboard.releaseAll();}
ElseIf (codeValue == 3724611558) //volume vers le bas
{Keyboard.press(0x80) ;
Keyboard.Press(0xD9) ;
Delay(15) ;
Keyboard.releaseAll();}
ElseIf (codeValue == 3724611520) //forward
{Keyboard.press(0x81) ;
Keyboard.Press(0xD7) ;
Keyboard.releaseAll();}
ElseIf (codeValue == 3724611552) //backward
{Keyboard.press(0x81) ;
Keyboard.Press(0xD8) ;
Keyboard.releaseAll();}
ElseIf (codeValue == 3724611574) //speedup
{Keyboard.write(0x5D);}
ElseIf (codeValue == 3724611541) //speed vers le bas
{Keyboard.write(0x5B);}
}
int lastButtonState ;
void loop() {}
Si le bouton est enfoncé, envoyer le code.
Si (irrecv.decode (et résultats)) {}
digitalWrite (STATUS_PIN, élevé) ;
storeCode(&results) ;
irrecv.Resume() ; reprendre le récepteur
digitalWrite (STATUS_PIN, basse) ;
}
}