Votre télécommande universelle grâce à Arduino

Bonjour chers amis geek (et les autres),

Aujourd’hui nous allons un peu bidouiller sur notre carte électronique préférée, j’ai nommé Madame Arduino et la technologie infrarouge. Vous avez surement tous encore une vieille télécommande qui fonctionne à l’infrarouge (IR), pour votre TV, décodeur, lecteur DVD/Blue-ray ou que sais-je encore ! Et bien nous allons essayer de déchiffrer le signal IR de ces télécommandes grâce à un récepteur Infrarouge et de le rejouer grâce à une led émettrice.

Matériel

Alors pour notre petit TP nous aurons besoin des éléments suivants:

  • Une carte Arduino (Uno dans mon cas) avec le logiciel Arduino d’installé
  • Un récepteur IR type TSOP1736.
  • Une LED émettrice IR genre ça.
  • Une télécommande IR que vous utilisez chez vous.

C’est parti !!

Prérequis

Avant de commencer, il va falloir que vous téléchargiez la librairie IRremote pour Arduino. Cette dernière va nous permettre d’envoyer et recevoir des signaux Infrarouge. Vous pouvez la récupérer ici.

irremote_library

Dé-zippez l’archive dans le répertoire d’installation du logiciel Arduino prévu à cette effet, par défaut : C:\Program Files (x86)\Arduino\libraries.

librairies_directory

Voilà c’est tout, votre librairie est prête à être utilisée.

Récupération d’un signal

On va commencer par le commencement à savoir les branchements.

arduino_tsop

J’ai utilisé le port 11 de l’arduino mais vous pouvez en choisir un autre ! Sur le schéma, les connexions sont pour un TSOP1736 mais il en existe plusieurs sortes et l’emplacement des pattes peuvent varier, reportez-vous à la datasheet de votre récepteur pour être sur des connexions. D’ailleurs pour faire mes tests j’ai trouvé un récepteur IR dans mon bordel déjà intégré sur une petite plaque, avec 3 jolies sorties indiqués, je n’ai donc pas trop eu à réfléchir.

IR_receiver

Vous voyez que la plaque intègre des résistances/condos en plus. Ils sont préconisés dans la datasheet mais pour nos tests nous ne sommes pas obligés de les mettre, en revanche si vous voulez faire une installation long terme, pensez à bien respecter la datasheet. Bref voilà mon branchement !! On peut difficilement faire plus facile…

IMG_20151112_184554

Téléversez le code suivant dans votre arduino :

Ouvrez le « moniteur série », prenez une télécommande infrarouge que vous avez chez vous et appuyez sur différents boutons. Pour ma part j’ai pris la télécommande de ma TV (LG). Si le protocole est reconnu vous devriez recevoir ce genre de code :

arduino_serie

Cela correspond au code hexadecimal qui est envoyé par la télécommande. A noter que le code « FFFFFFFF » est à négliger, je crois qu’il correspond au fait que vous soyez resté appuyé trop longtemps sur le bouton. Notez quelques uns de ces codes avec leur correspondance car nous allons les rejouer plus tard. D’ailleurs pour les rejouer nous avons besoin de savoir quel protocole est utilisé par notre télécommande. Pour cela rien de plus simple, il suffit de charger le sketch arduino « IRrecvDump » (Fichier > Exemples > IRremote > IRrecvDump).
Téléversez le dans l’arduino, ouvrez à nouveau votre moniteur série et appuyez sur une touche :

arduino_serie2

On retrouve le code envoyé et on voit que le protocole utilisé est NEC. Garder le dans un coin on en aura besoin plus tard.

Emission du signal

Pour les branchements là encore c’est très très simple. Il suffit de connecter la LED avec une résistance 100ohms au pin 3. Non, ce coup ci je ne vous laisse pas le choix du pin, il est définit en dur dans la librairie.

arduino_led_ir

Pour ma part j’ai aussi trouvé une LED émettrice avec composants tout intégrées, j’ai donc fait le branchement direct :

IMG_20151114_172006 IMG_20151114_171859

Il faut obligatoirement utiliser le PIN 3 pour l’émission car le pin est codé en dur dans la librairie.

Ensuite vous pouvez téléverser le sketch suivant :

Dans mon cas j’utilise la fonction sendNEC car j’ai précédemment vu que ma télécommande utilisé ce protocole, à vous de l’ajuster en fonction. D’après la page du créateur de la librairie, il reconnait les protocoles NEC, Sony SIRC, Philips RC5, Philips RC6, et raw.

Pointez votre LED vers l’équipement que vous souhaiter contrôler. Dans mon cas je l’ai fait vers la TV et comme prévu toutes les 10 secondes, un coup elle s’allumait et 10 secondes après s’éteignait… Pas très pratique c’est sûre mais à vous maintenant d’imaginer un cas plus utile. On pourrait par exemple faire une petite boite avec des leds IR de chaque côté, planquée quelque part prêt de votre meuble de salon où vous avez tous vos appareils qui pourrait gérer votre TV, lecteur DVD (ou BlueRay si vous êtes moderne), ampli…etc. Vous pouvez imaginer envoyé le code par wifi ou bluetooth par exemple.

Sur ce je vous souhaite une bonne soirée (ou journée en fonction de quand vous lisez cet article) et à bientôt 🙂

5 commentaires

  1. Bonjour, pour l’émetteur que vous connecter sur l’arduino quel port est utiliser ? Et pourquoi celui-ci n’est pas dans le code final ?

    De plus on n’a le code pour le protocole de la télécommande mais après les code de chaque bouton on fait comment pour les intégré au code ?

    Merci d’avance de votre réponse.

    1. Bonjour,

      C’est le PIN3 qui est utilisé pour l’émission. Le PIN est codé en dur et ne peut être changé.
      Il faut récupéré le code pour tous les boutons, ensuite tu peux les utiliser dans le code comme bon te semble.

  2. Bonjour, pour l’émetteur que vous connecter sur l’arduino quel port est utiliser ? Et pourquoi celui-ci n’est pas dans le code final ?

    De plus on n’a le code pour le protocole de la télécommande mais après les code de chaque bouton on fait comment pour les intégré au code ?

    Merci d’avance de votre réponse.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.