Panier d’achat

Aucun produit dans le panier.

Télécommande IR + récepteur infrarouge Arduino

25.00 د.م.

6 en stock

Quantité Discount (%) Prix
1 - 29 25.00 د.م.
30+ 20 % 20.00 د.م.

Tutoriel : Comment utiliser un Télécommande IR + Récepteur  infrarouge avec Arduino


Dans ce tutoriel, vous apprendrez à utiliser une télécommande IR et un récepteur avec l’Arduino. J’ai inclus des schémas de câblage et plusieurs exemples de codes pour vous aider à démarrer.

En suivant les instructions de ce tutoriel, vous pourrez utiliser pratiquement n’importe quelle télécommande infrarouge (comme celle de votre téléviseur) pour contrôler les éléments connectés à l’Arduino.

Dans les exemples de code ci-dessous, nous utiliserons la bibliothèque IRremote Arduino. Cette bibliothèque est assez facile à utiliser et prend en charge de nombreux protocoles de communication IR différents. Avec les deux premiers exemples, vous pouvez identifier le protocole IR de votre télécommande et déterminer quel code elle envoie lorsque vous appuyez sur une touche / un bouton. Ensuite, je vais vous montrer comment mapper le code reçu aux valeurs clés et les afficher dans le moniteur série ou sur un écran LCD. Enfin, nous examinerons le contrôle des sorties de l’Arduino avec une télécommande IR et un récepteur.

Si vous avez des questions, veuillez laisser un commentaire ci-dessous.


Composants matériels

  1. Télécommande IR et récepteur
  2. Arduino uno
  3. Fils
  4. Écran LCD 16 × 2 caractères
  5. Breadbord
  6. Potentiomètre 10 kΩ (type breadboard)
  7. Résistances
  8. LED
  9. Câble USB type A / B

Connexion d’un récepteur IR à l’Arduino

Il est très facile de connecter un récepteur IR à l’Arduino car il vous suffit de connecter trois fils. Le fil de sortie peut être connecté à l’une des broches numériques de l’Arduino. Dans ce cas, je l’ai connecté à la broche 2 pour les premiers exemples ci-dessous.

La broche d’alimentation est connectée à 5 V et la broche de masse du milieu à GND. Si vous utilisez un récepteur monté sur une carte de dérivation, vérifiez les étiquettes sur le PCB car l’ordre des broches peut être différent!

Télécommande IR et récepteur avec schéma de câblage Arduino tutoriel-circuit-schématique-1
La broche de sortie du récepteur IR est connectée à la broche 2

Les connexions sont également données dans le tableau ci-dessous


Connexions du récepteur IR

Récepteur IR Arduino
OUT (gauche) Broche 2
GND (milieu) GND
Vcc (à droite) 5 V

Installation de la bibliothèque IRremote Arduino

Pour ce didacticiel, nous utiliserons la bibliothèque IRremote populaire écrite par Rafi Khan et d’autres. Cette bibliothèque est assez facile à utiliser et prend en charge de nombreux types différents de télécommandes IR. Vous pouvez trouver le code source de cette bibliothèque ici sur GitHub .


Recherche des codes clés de votre télécommande

Comme il existe de nombreux types de télécommandes sur le marché (nombre de touches et valeurs différentes imprimées sur les touches), nous devons déterminer quel signal reçu correspond à quelle clé.

La bibliothèque IRremote lira le signal et sortira un code spécifique sous la forme d’un nombre hexadécimal en fonction de la touche enfoncée.

En imprimant cette sortie dans Serial Monitor, nous pouvons créer une table de conversion.

Vous pouvez copier le code ci-dessous en cliquant dans le coin supérieur droit du champ de code.

#include <IRremote.h> // include the IRremote library

#define RECEIVER_PIN 2 // define the IR receiver pin
IRrecv receiver(RECEIVER_PIN); // create a receiver object of the IRrecv class
decode_results results; // create a results object of the decode_results class

void setup() {
Serial.begin(9600); // begin serial communication with a baud rate of 9600
receiver.enableIRIn(); // enable the receiver
receiver.blink13(true); // enable blinking of the built-in LED when an IR signal is received
}
void loop() {
if (receiver.decode(&results)) { // decode the received signal and store it in results
Serial.println(results.value, HEX); // print the values in the Serial Monitor
receiver.resume(); // reset the receiver for the next code
}
}

Après avoir téléchargé le code, ouvrez Serial Monitor (Ctrl + Maj + M sous Windows). Appuyez maintenant sur chaque touche de la télécommande et enregistrez la valeur hexadécimale correspondante que vous voyez dans Serial Monitor.

Notez que vous verrez le code FFFFFFFF lorsque vous appuyez sur une touche en continu. Il s’agit du code de répétition envoyé par la télécommande.

Pour ma télécommande, j’ai la table de conversion suivante:

Clé Code
PUISSANCE 0xFD00FF
VOL + 0xFD807F
FUNC / STOP 0xFD40BF
│◄◄ 0xFD20DF
►││ 0xFDA05F
►►│ 0xFD609F
0xFD10EF
VOL- 0xFD906F
0xFD50AF
0 0xFD30CF
EQ 0xFDB04F
ST / REPT 0xFD708F
1 0xFD08F7
2 0xFD8877
3 0xFD48B7
4 0xFD28D7
5 0xFDA857
6 0xFD6897
7 0xFD18E7
8 0xFD9867
9 0xFD58A7

Comme vous pouvez le voir dans le tableau, les valeurs hexadécimales sont indiquées par le préfixe «0x».

Notez que votre table sera probablement différente! Vous devrez créer le vôtre pour l’utiliser dans le reste des exemples de code ci-dessous.


Exemple de code Arduino à distance et récepteur IR – Imprimer les valeurs clés dans le moniteur série

Maintenant que nous savons quel code (valeur hexadécimale) correspond à quelle pression de touche, nous pouvons modifier le code pour imprimer la valeur de la touche enfoncée dans le moniteur série.

Pour cela, nous utiliserons une structure de contrôle de boîtier de commutation . Cela nous permet d’exécuter un morceau de code différent en fonction de la touche enfoncée.

L’exemple de code ci-dessous imprime la valeur de clé dans le moniteur série au lieu de la valeur hexadécimale comme nous l’avons fait dans l’exemple précédent. Après avoir téléchargé le code, vous pouvez lire l’explication ci-dessous pour savoir comment le code fonctionne.

/* 

* Réaliser par Micro-Electroniques Générales au Maroc 
* Visite notre site megma.ma 

*/ #include <IRremote.h> // include the IRremote library #define RECEIVER_PIN 2 // define the IR receiver pin IRrecv receiver(RECEIVER_PIN); // create a receiver object of the IRrecv class decode_results results; // create a results object of the decode_results class unsigned long key_value = 0; // variable to store the key value void setup() { Serial.begin(9600); // begin serial communication with a baud rate of 9600 receiver.enableIRIn(); // enable the receiver receiver.blink13(true); // enable blinking of the built-in LED when an IR signal is received } void loop() { if (receiver.decode(&results)) { // decode the received signal and store it in results if (results.value == 0xFFFFFFFF) { // if the value is equal to 0xFFFFFFFF results.value = key_value; // set the value to the key value } switch (results.value) { // compare the value to the following cases case 0xFD00FF: // if the value is equal to 0xFD00FF Serial.println(“POWER”); // print “POWER” in the Serial Monitor break; case 0xFD807F: Serial.println(“VOL+”); break; case 0xFD40BF: Serial.println(“FUNC/STOP”); break; case 0xFD20DF: Serial.println(“|<<“); break; case 0xFDA05F: Serial.println(“>||”); break ; case 0xFD609F: Serial.println(“>>|”); break ; case 0xFD10EF: Serial.println(“DOWN”); break ; case 0xFD906F: Serial.println(“VOL-“); break ; case 0xFD50AF: Serial.println(“UP”); break ; case 0xFD30CF: Serial.println(“0”); break ; case 0xFDB04F: Serial.println(“EQ”); break ; case 0xFD708F: Serial.println(“ST/REPT”); break ; case 0xFD08F7: Serial.println(“1”); break ; case 0xFD8877: Serial.println(“2”); break ; case 0xFD48B7: Serial.println(“3”); break ; case 0xFD28D7: Serial.println(“4”); break ; case 0xFDA857: En série. println ( “5” ) ; pause ; cas 0xFD6897 : En série. println ( “6” ) ; pause ; cas 0xFD18E7 : En série. println ( “7” ) ; pause ; cas 0xFD9867 : En série. println ( “8” ) ; pause ; cas 0xFD58A7 : En série. println ( “9” ) ; pause ; } key_value = résultats. valeur ; // stocke la valeur sous la forme key_value destinataire. reprendre () ; // réinitialise le récepteur pour le code suivant } }
Si votre télécommande envoie des codes de clé différents de ceux indiqués dans le tableau ci-dessus, remplacez simplement la valeur hexadécimale et la valeur de clé dans chacune des lignes de l’instruction switch case qui ressemblent à ceci:
case 0xFD00FF : // si la valeur est égale à 0xFD00FF
En série. println ( “PUISSANCE” ) ; // imprime “POWER” dans le moniteur série

Ces lignes se traduisent par: lorsque results.value est égal à 0xFD00FF, affiche «POWER» dans le moniteur série. Notez à nouveau que vous devez ajouter «0x» avant les valeurs que vous avez vues dans Serial Monitor dans l’exemple précédent.

Pour éviter les doubles clics indésirables, vous pouvez ajouter un court délai (par exemple 500 ms) à la fin de la boucle.


Pour toutes questions, remarques ou suggestions relatives à ce tutoriel, n’hésitez pas à nous contacter à notre page Facebook. (Même à 23h ou minuit si je ne dors pas je vous répondrai!)


Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “Télécommande IR + récepteur infrarouge Arduino”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Tous les résultats de recherche
×