Arduino - Télécommande IR

Vous avez probablement déjà rencontré la télécommande infrarouge, également connue sous le nom de télécommande IR, lors de l'utilisation d'appareils électroniques domestiques tels que les télévisions et les climatiseurs... Dans ce tutoriel, nous allons apprendre à utiliser une télécommande infrarouge (IR) et un récepteur infrarouge pour contrôler un Arduino. En détail, nous apprendrons :

Ensuite, vous pouvez modifier le code pour contrôler la LED, le ventilateur, la pompe, l'actionneur... via une télécommande IR.

Contrôleur IR - Récepteur IR - Arduino

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×IR Kit (Remote Controller and Receiver)
1×CR2025 Battery
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de la télécommande IR

Un système de contrôle IR comprend deux composants :

  • Télécommande IR
  • Récepteur IR

Un kit IR comprend généralement deux composants mentionnés ci-dessus.

Télécommande IR

La télécommande IR est un appareil portable qui émet des signaux infrarouges. La télécommande IR est composée d'un clavier avec différents boutons :

  • Chaque bouton de la télécommande correspond à une fonction ou une commande spécifique.
  • Lorsqu'un bouton est pressé, la télécommande émet un signal infrarouge qui porte un code ou un motif unique associé au bouton pressé.
  • Ces signaux infrarouges ne sont pas visibles à l'œil nu car ils se trouvent dans le spectre infrarouge.
Contrôleur IR
image source: diyables.io

Récepteur IR

Le module récepteur IR est un capteur qui détecte et reçoit les signaux infrarouges émis par la télécommande.

Le récepteur infrarouge détecte les signaux infrarouges entrants et les convertit en code (commande) représentant le bouton pressé sur la télécommande.

Le récepteur IR peut être un capteur ou un module. Vous pouvez utiliser les choix suivants :

  • Module récepteur IR uniquement
  • Capteur récepteur IR uniquement
  • Capteur récepteur IR + Adaptateur
Module capteur récepteur IR
image source: diyables.io
Adaptateur de capteur récepteur IR
image source: diyables.io

Brochage du récepteur IR

Le module ou capteur de réception IR possède trois broches :

  • Broche VCC : Connectez cette broche à la broche 3.3V ou 5V de l'Arduino ou à une source d'alimentation externe.
  • Broche GND : Connectez cette broche à la broche GND de l'Arduino ou à une source d'alimentation externe.
  • Broche OUT (Sortie) : Cette broche est la broche de sortie du module récepteur IR. Connectée à une broche d'entrée numérique sur l'Arduino.

Comment ça fonctionne

Lorsque l'utilisateur appuie sur un bouton de la télécommande IR.

  • La télécommande IR encode la commande correspondant au bouton dans le signal infrarouge via un protocole spécifique.
  • La télécommande IR émet le signal infrarouge codé.
  • Le récepteur IR reçoit le signal infrarouge codé.
  • Le récepteur IR décode le signal infrarouge codé en commande.
  • L'Arduino lit la commande provenant du récepteur IR.
  • L'Arduino associe la commande à la touche pressée.

Il semble compliqué mais ne vous inquiétez pas. Avec l'aide de la bibliothèque DIYables_IRcontroller, c'est un jeu d'enfant.

Diagramme de câblage

Schéma de câblage entre Arduino et le module récepteur IR

Schéma de câblage de la télécommande IR Arduino

This image is created using Fritzing. Click to enlarge image

Le véritable schéma de câblage

Module récepteur de télécommande IR Arduino
image source: diyables.io

Schéma de câblage entre Arduino et capteur récepteur IR

Schéma de câblage de la télécommande infrarouge Arduino

This image is created using Fritzing. Click to enlarge image

Le véritable schéma de câblage

Capteur récepteur de télécommande IR Arduino
image source: diyables.io

Schéma de câblage entre Arduino et le capteur et l'adaptateur de récepteur infrarouge

Vous pouvez également connecter le capteur récepteur IR à l'adaptateur avant de le connecter à l'Arduino.

Récepteur adaptateur de télécommande IR Arduino
image source: diyables.io

Comment programmer pour une télécommande IR

  • Inclure la bibliothèque :
#include <DIYables_IRcontroller.h> // Bibliothèque pour le récepteur IR
  • Déclarez un objet DIYables_IRcontroller_17 ou DIYables_IRcontroller_21 correspondant aux télécommandes IR de 17 touches ou 21 touches :
DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // le temps d'anti-rebond est de 200 ms // OU DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // le temps d'anti-rebond est de 200 ms
  • Initialisez le contrôleur IR.
irController.begin();
  • Dans la boucle, vérifiez si une touche est pressée ou non. Si oui, récupérez la touche
Key17 key = irController.getKey(); // si utilisation d'une télécommande IR à 17 touches // OU Key21 key = irController.getKey(); // si utilisation d'une télécommande IR à 21 touches
  • Une fois qu'une touche est détectée, vous pouvez effectuer des actions spécifiques selon chaque touche.

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 7 // The Arduino pin connected to IR controller DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key17::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key17::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key17::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key17::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key17::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key17::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key17::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key17::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; case Key17::KEY_STAR: Serial.println("*"); // TODO: YOUR CONTROL break; case Key17::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key17::KEY_SHARP: Serial.println("#"); // TODO: YOUR CONTROL break; case Key17::KEY_UP: Serial.println("UP"); // TODO: YOUR CONTROL break; case Key17::KEY_DOWN: Serial.println("DOWN"); // TODO: YOUR CONTROL break; case Key17::KEY_LEFT: Serial.println("LEFT"); // TODO: YOUR CONTROL break; case Key17::KEY_RIGHT: Serial.println("RIGHT"); // TODO: YOUR CONTROL break; case Key17::KEY_OK : Serial.println("OK"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }
  • Code Arduino pour le contrôleur de télécommande IR à 21 touches DIYables
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 7 // The Arduino pin connected to IR controller DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key21 key = irController.getKey(); if (key != Key21::NONE) { switch (key) { case Key21::KEY_CH_MINUS: Serial.println("CH-"); // TODO: YOUR CONTROL break; case Key21::KEY_CH: Serial.println("CH"); // TODO: YOUR CONTROL break; case Key21::KEY_CH_PLUS: Serial.println("CH+"); // TODO: YOUR CONTROL break; case Key21::KEY_PREV: Serial.println("<<"); // TODO: YOUR CONTROL break; case Key21::KEY_NEXT: Serial.println(">>"); // TODO: YOUR CONTROL break; case Key21::KEY_PLAY_PAUSE: Serial.println(">||"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_MINUS: Serial.println("–"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_PLUS: Serial.println("+"); // TODO: YOUR CONTROL break; case Key21::KEY_EQ: Serial.println("EQ"); // TODO: YOUR CONTROL break; case Key21::KEY_100_PLUS: Serial.println("100+"); // TODO: YOUR CONTROL break; case Key21::KEY_200_PLUS: Serial.println("200+"); // TODO: YOUR CONTROL break; case Key21::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key21::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key21::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key21::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key21::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key21::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key21::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key21::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key21::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key21::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }

Étapes rapides

  • Accédez à l'icône Libraries dans la barre gauche de l'IDE Arduino.
  • Recherchez "DIYables_IRcontroller", puis trouvez la bibliothèque DIYables_IRcontroller de DIYables.
  • Cliquez sur le bouton Install pour installer la bibliothèque DIYables_IRcontroller.
Bibliothèque Arduino DIYables_IRcontroller
  • Vous serez invité à installer la dépendance de la bibliothèque comme le montre l'image ci-dessous :
Bibliothèque IRremote pour Arduino
  • Cliquez sur le bouton Install All pour installer la dépendance.
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers Arduino.
  • Appuyez sur les touches de la télécommande une à une.
  • Consultez le résultat sur le moniteur série.
  • Voici le résultat lorsque vous appuyez sur les touches de la télécommande IR 21 touches une par une :
COM6
Send
CH- CH CH+ << >> >|| – + EQ 100+ 200+ 0 1 2 3 4 5 6 7 8 9
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous pouvez maintenant modifier le code pour contrôler des LED, ventilateurs, pompes, actionneurs... via des télécommandes IR.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!