Utilisation d'un capteur infrarouge avec Arduino

Qu'est-ce qu'un capteur infrarouge (aka IR)?

Un capteur IR est un instrument électronique qui scanne les signaux IR dans des gammes de fréquences spécifiques définies par des normes et les convertit en signaux électriques sur sa broche de sortie (généralement appelée broche de signal). Les signaux infrarouges sont principalement utilisés pour transmettre des commandes par voie hertzienne sur de courtes distances (généralement quelques mètres) comme ce que vous avez déjà travaillé sur des télécommandes de télévision ou d'autres appareils électroniques similaires.

Protocole de communication IR

Chaque signal représente un code spécifique. Les signaux électriques peuvent être reconvertis en données / codes réels que l'expéditeur a envoyés. Lorsque vous appuyez sur un bouton de la télécommande de votre téléviseur, il génère un signal correspondant au code du bouton (par exemple, marche / arrêt, augmentation du volume, etc.) et l'envoie à un récepteur (dans ce cas, votre téléviseur). L'expéditeur et le destinataire se sont mis d'accord sur un ensemble de codes afin que le destinataire sache quoi faire en fonction de chaque code. La façon dont un code doit être modulé (modélisé) comme un signal est défini dans une norme différente et chaque fabricant de capteurs essaie normalement de produire un produit compatible avec eux afin qu'il puisse être utilisé dans différents appareils. L'un des protocoles standard les plus connus provient de NEC. Vous pouvez trouver un bref historique des protocoles IR sur Wikipedia sous le titre Consumer IR.

Étape 1: À quoi ressemble un capteur infrarouge?

Les capteurs IR sont disponibles sur différents packages. Ici, vous pouvez voir un emballage typique pour un récepteur IR.

Étape 2: Carte / module de dérivation du capteur infrarouge

Vous pouvez également les acheter en tant que module IR / carte de dérivation sur eBay, Aliexpress ou Amazon. De tels modules intègrent normalement l'un des capteurs mentionnés ci-dessus avec un bel emballage compatible avec une maquette avec une LED qui clignote lorsque le capteur détecte un signal. Ce faisant, vous remarquerez si des données sont en cours de transfert. Je suggère fortement de commencer par l'un de ces modules.

Remarque: si vous avez un capteur IR brut, rien ne changerait, sauf que vous devriez vérifier la fiche technique du capteur pour vous assurer que vous le connectez correctement car sinon vous pourriez avoir une belle fumée bleue avec une odeur qui durerait pendant une heure. Tu sais ce que je veux dire ;)

Étape 3: Pièces et composants requis

Vous trouverez ici la liste des composants dont vous auriez besoin pour suivre ce didacticiel:

Liens eBay:

  • 1 x Arduino Uno: //rover.ebay.com/rover/1/711-53200-19255-0/1 ...
  • 1 x module capteur IR avec télécommande: //rover.ebay.com/rover/1/711 ....
  • 4 résistances de 220 ohms: //rover.ebay.com/rover/1/711-53200-19255-0 / ...
  • 4 x LED: //rover.ebay.com/rover/1/711-53200-19255-0 / ...
  • 8 x câble Dupont: //rover.ebay.com/rover/1/711-53200-3=4&too ...
  • 1 x planche à pain sans soudure: //rover.ebay.com/rover/1/711-53200 -...
  • 1 x Mini planche à pain (en option): //rover.ebay.com/rover/1/711-532 ...

Liens Amazon.com:

  • 1 x Arduino Uno: //amzn.to/2uJfKy1
  • 1 x module capteur IR avec télécommande: //amzn.to/2uMS1eT
  • 1 x planche à pain sans soudure: //amzn.to/2uMC6gl
  • 4 résistances de 220 ohms: //amzn.to/2hbGiDs
  • 4 x LED: //amzn.to/2uMEtjy
  • 8 x câble Dupont: //amzn.to/2eXCvbT
  • 1 x Mini planche à pain (en option): //amzn.to/2vUelmC

Liens Amazon.co.uk:

  • 1 x Arduino Uno: //amzn.to/2u8DXKD
  • 1 x module capteur IR avec télécommande: //amzn.to/2wagB8Y
  • 4 x résistances 220 ohms: //amzn.to/2uJCsGs
  • 4 x LED: //amzn.to/2u8nNRo
  • 8 x câble Dupont: //amzn.to/2vaLDQN
  • 1 x planche à pain sans soudure: //amzn.to/2u8nkP2
  • 1 x Mini planche à pain (en option): //amzn.to/2vaKtoc

Étape 4: connexion du capteur infrarouge à Arduino

La configuration de la connexion du capteur IR à Arduino est très simple. En plus des broches VCC et GND, le capteur n'a qu'une seule broche de sortie qui doit être connectée à l'une des broches numériques de l'Arduino. Dans ce cas, il est connecté à la broche 13.

J'ai essayé de démontrer à la fois le module de capteur IR et la configuration brute du capteur IR. Comme on peut le voir sur les photos, la position des broches VCC et GND sur le module de capteur est l'opposé du capteur brut. Cependant, cela peut ne pas être le cas pour votre capteur, donc comme mentionné à l'étape précédente, en cas d'utilisation du capteur brut, consultez d'abord la fiche technique.

Étape 5: trouver le code correspondant à chaque clé de la télécommande

Afin de programmer Arduino pour faire quelque chose lorsque vous appuyez sur une touche de la télécommande, vous devez d'abord avoir le code correspondant à cette touche. Le code clé est un nombre normalement présenté sous forme hexadécimale. Chaque télécommande a son propre ensemble de codes clés, mais il est possible que deux contrôleurs partagent le même code à des fins différentes. Le fait d'avoir des codes clés différents et d'utiliser des plages de fréquences différentes garantit que deux télécommandes d'appareils différents n'auraient pas d'interférences. C'est pourquoi lorsque vous changez de chaîne de télévision, votre lecteur DVD ne réagit pas du tout.

Pour détecter les codes de votre télécommande infrarouge, vous devez d'abord exécuter un simple croquis qui essaie de lire le code du capteur lorsque vous appuyez sur une touche et l'envoie via le port série à votre ordinateur où vous pouvez y accéder en utilisant les outils du moniteur série de Arduino IDE. C'est ce que fait l'esquisse jointe à cette section. Il serait préférable d'appuyer sur chaque bouton pour voir le code et écrire la liste des codes quelque part afin que vous n'ayez pas besoin de réexécuter ce code à l'avenir. La liste des codes clés que vous voyez sous forme de tableau dans l'image est en fait des codes que j'ai reçus lorsque j'appuie sur les boutons de ma télécommande infrarouge bon marché.

Vous pouvez également accéder au code source réel partagé sur mon éditeur Web Arduino sur ir-key-code-logger.

Remarque : N'ayez pas peur si vous voyez un code comme FFFFFF quelque part entre les deux. Cela signifie que vous avez appuyé et maintenu un bouton pendant un certain temps. Nous y reviendrons plus tard. Pour l'instant, ignorez-les et concentrez-vous sur d'autres codes.

Pièces jointes

  • ir-code-logger.ino Télécharger

Étape 6: contrôler un ensemble de LED à l'aide de la télécommande infrarouge

Maintenant que nous avons un code pour chaque bouton, il est temps de nous concentrer sur la façon dont nous pouvons les utiliser. Normalement, vous utilisez la télécommande IR pour envoyer des commandes à Arduino pour faire quelque chose comme allumer ou éteindre une lampe, déplacer un robot dans une direction spécifique, afficher quelque chose sur un écran LCD / OLED, etc. Ici, nous essayons de démontrer le processus en utilisant un simple circuit composé de 4 LED de différentes couleurs. Nous voulons activer ou désactiver chacun d'eux par un bouton dédié de la télécommande IR. Comme vous pouvez le voir sur le schéma, vous devez connecter l'Arduino de la manière suivante aux LED et au capteur:

Arduino GND -> Capteur IR GND.

Arduino VCC -> Capteur IR VCC.

Arduino 13 -> Sortie du signal du capteur IR.

Arduino 2 -> Anode de la LED bleue (broche plus courte de la LED bleue)

Arduino 3 -> Anode de la LED verte (broche plus courte de la LED verte)

Arduino 4 -> Anode de la LED jaune (broche plus courte de la LED jaune)

Arduino 5 -> Anode de la LED rouge (broche plus courte de la LED rouge)

Arduino GND -> Cathode de toutes les LED via une résistance de 220 ohms (broche plus longue des LED)

Vous pouvez trouver le code correspondant à ce circuit dans le fichier joint ou sur mon éditeur web Arduino sur ir-led-control.

Pièces jointes

  • ir-led-control.ino Télécharger

Étape 7: dépannage

Lors de la configuration de votre projet et en suivant les étapes, vous pouvez rencontrer de nombreuses situations étranges. Voici la liste des erreurs courantes que vous pouvez rencontrer en travaillant avec un capteur infrarouge.


Obtenir FFFFFF lorsque vous appuyez sur une touche

Lorsque vous appuyez sur un bouton, vous remarquerez que la plupart du temps, il signale un code comme FFFFFF. Cela se produit lorsque vous appuyez sur un bouton et le maintenez pendant un certain temps, même pendant une courte période. Le scénario est que lorsque vous appuyez initialement sur le bouton, la télécommande infrarouge envoie le code du bouton et tant que vous maintenez le bouton enfoncé, il répète l'envoi de FFFFFF, ce qui signifie que l'utilisateur continue d'appuyer sur le bouton signalé récemment. Ce serait OK. Vous pouvez simplement les omettre. Le code réel est celui que vous avez obtenu juste avant FFFFFF sur le moniteur série.


Le capteur infrarouge ne réagit pas du tout et semble qu'il fait chaud!

Coupez le courant !!! Si vous êtes sûr que l'esquisse de l'enregistreur de code clé est correcte, le problème peut être dû à une mauvaise configuration de vos fils. Le scénario qui m'est arrivé était que pour mon module IR (celui attaché à la carte), j'avais connecté le VCC et le GND de la manière opposée (car je n'utilisais pas de couleurs appropriées pour mes fils de raccordement). Ce faisant, le composant du capteur a brûlé et une belle fumée bleue s'est élevée. J'ai acheté un pack de capteurs IR bruts et j'ai essayé de le remplacer et maintenant cela fonctionne comme un charme :). Malheureusement, j'ai fait la même erreur lorsque je testais avec le capteur IR brut et cette fois, rien ne s'est passé, sauf que le capteur s'est réchauffé. Vérifiez donc toujours le circuit avant de mettre sous tension!


Parfois, le capteur détecte un code que je n'ai jamais vu auparavant

C'est l'un des problèmes les plus courants. C'est probablement dû à l'une des raisons suivantes:

  • Vous ne pointez pas votre télécommande infrarouge directement vers le capteur

Cela conduira à avoir de nouveaux codes (principalement des codes plus longs) que vous n'avez jamais reçus auparavant et qui ne correspondent normalement pas à la longueur des codes que vous avez déjà. Pensez donc à toujours pointer la télécommande vers votre capteur.

  • Vous utilisez une télécommande infrarouge bon marché (comme celle que j'ai utilisée dans ce tutoriel)

Au lieu d'utiliser une télécommande imprévisible bon marché, vous pouvez essayer le même scénario en utilisant la télécommande de votre téléviseur ou lecteur DVD ou une télécommande infrarouge de tous vos appareils. Ils ont normalement une bonne qualité de signal / matériel (et bien sûr sont plus chers) et d'après mon expérience, ils fonctionnent normalement bien même si vous ne pointez pas votre télécommande directement vers le capteur.


Comment savoir si un code enregistré n'est pas une poubelle

Les codes sont normalement présentés au format hexadécimal. Si vous les convertissez en la valeur binaire correspondante, vous remarquerez que la représentation binaire du dernier octet est la négation de l'octet qui précède. Si vous le savez, vous pouvez effectuer cette vérification dans votre code pour vous assurer que le code que vous avez reçu est bien valide ou non. Par exemple, si vous obtenez FF7A85, sa représentation binaire serait la suivante:

 1111 1111 0111 1010 1000 0101 

De gauche à droite, chaque lot de 4 chiffres est la représentation d'un caractère dans le nombre hexadécimal d'origine. Comme vous pouvez le voir, le lot correspondant à 7 est 0111 et le lot correspondant à 8 est 1000, ce qui en est la négation exacte. Par négation, je veux dire que tous les 0 seraient des 1 et tous les 1 seraient remplacés par des 0. La même chose est vraie pour le suivant qui est A (1010) et 5 (0101).

Étape 8: Que faire ensuite?

Maintenant c'est ton tour. C'est à votre imagination de voir ce que vous pouvez faire avec ce petit capteur simple dans votre main. Voici quelques idées pour commencer:

  • Utilisez la télécommande infrarouge de l'un des appareils que vous avez à la maison (TV, stéréo, etc.) et essayez de l'utiliser dans votre projet Arduino
  • Essayez d'allumer toutes les LED en même temps en appuyant sur une touche, puis éteignez-les à l'aide d'une autre touche
  • Utilisez le bouton Haut / Bas de la télécommande pour allumer / éteindre les LED une par une jusqu'à ce qu'elles s'allument / s'éteignent toutes
  • Créez un feu de circulation à l'aide de LED et contrôlez-le à l'aide de votre télécommande
  • Si vous avez un petit moteur CC à portée de main, essayez de démarrer / arrêter ou de changer son sens de rotation via la télécommande infrarouge
  • Vous pouvez utiliser la télécommande de votre téléviseur pour contrôler votre robot ou activer / désactiver certains capteurs / actionneurs dessus

Faites-moi savoir sur les commentaires, que feriez-vous (ou que vous avez déjà fait) en utilisant la télécommande infrarouge.

Articles Connexes