L’objectif
Comme nous savons récupérer le type et les codes d’une télécommande,
on peut alors, à la réception d’un signal émis par cette télécommande, choisir de faire telle ou telle action.
Un exemple de code
Dans cet exemple, le récepteur est branché sur le pin11 d’Arduino.
En fichier sont définies les codes correspondant à chaque touche de la télécommande.
Il suffit alors de comparer le signal reçu avec ces codes pour agir en conséquence.
/* Reception infrarouge Utilisation du kit LDB (LadDeGaragem) Type NEC */ #define LDB_Touche_0 0xE12430CF #define LDB_Touche_1 0xE12440BF #define LDB_Touche_2 0xE12428D7 #define LDB_Touche_3 0xE1246897 #define LDB_Touche_4 0xE124B847 #define LDB_Touche_5 0xE124F00F #define LDB_Touche_6 0xE1249867 #define LDB_Touche_7 0xE1247887 #define LDB_Touche_8 0xE124B04F #define LDB_Touche_9 0xE124F807 #define LDB_Touche_Volume_Up 0xE12458A7 #define LDB_Touche_Volume_Down 0xE124A05F #define LDB_Touche_Diese 0xE124E817 #define LDB_Touche_Sel 0xE12418E7 #define LDB_Touche_Mute 0xE124609F #define LDB_Touche_Source 0xE12448B7 #define LDB_Touche_Disp 0xE124C837 #define LDB_Touche_Band 0xE124D827 #include <IRremote.h> int broche_reception = 11; // broche 11 utilisée IRrecv reception_ir(broche_reception); // crée une instance decode_results decode_ir; // stockage données reçues void setup() { Serial.begin(9600); reception_ir.enableIRIn(); // démarre la réception } void loop() { if (reception_ir.decode(&decode_ir)) { Serial.println(decode_ir.value, HEX); switch (decode_ir.value) { case LDB_Touche_0 : //// Touche 0 Serial.println("Touche 0"); break; case LDB_Touche_1 : //// Touche 1 Serial.println("Touche 1"); break; case LDB_Touche_2 : //// Touche 2 Serial.println("Touche 2"); break; case LDB_Touche_3 : //// Touche 3 Serial.println("Touche 3"); break; case LDB_Touche_4 : //// Touche 4 Serial.println("Touche 4"); break; case LDB_Touche_5 : //// Touche 5 Serial.println("Touche 5"); break; case LDB_Touche_6 : //// Touche 6 Serial.println("Touche 6"); break; case LDB_Touche_7 : //// Touche 7 Serial.println("Touche 7"); break; case LDB_Touche_8 : //// Touche 8 Serial.println("Touche 8"); break; case LDB_Touche_9 : //// Touche 9 Serial.println("Touche 9"); break; case LDB_Touche_Volume_Up : //// Touche Volume Up Serial.println("Touche Volume Up"); break; case LDB_Touche_Volume_Down : //// Touche Volume Down Serial.println("Touche Volume Down"); break; case LDB_Touche_Diese : //// Touche Diese Serial.println("Touche Diese"); break; case LDB_Touche_Sel : //// Touche Sel Serial.println("Touche Sel"); break; case LDB_Touche_Mute : //// Touche Mute Serial.println("Touche Mute"); break; case LDB_Touche_Source : //// Touche Source Serial.println("Touche Source"); break; case LDB_Touche_Disp : //// Touche Disp Serial.println("Touche Disp"); break; case LDB_Touche_Band : //// Band Serial.println("Touche Band"); break; } reception_ir.resume(); // reçoit le prochain code } }
Simulation
- Lancer la simulation
- Cliquer sur « Code »
- Clique sur « Moniteur Série »
- Cliquer sur la télécommande et regarder les messages sur la liaison série.