Télécommande par infrarouge - Tutoriel Arduino

Utilisation de capteurs et composants électroniques avec Arduino.
Une fiche de tutoriel pour chaque.

Télécommande par infrarouge - Tutoriel Arduino

Messagepar tiptop » Lun 19 Aoû 2013 15:59

Télécommande par infrarouge - Tutoriel Arduino

Matériel utilisé
  • 1 récepteur infra-rouge 3 broches 38 kHz (portée 18 fts), type WS 1838B seul ou module monté sur PCB avec led témoin (mieux pour vos premiers essais).
  • 1 petite télécommande IR standard à 20 boutons avec sa pile bouton (retirer la languette pour activer la pile).
  • 1 télécommande de téléviseur
  • 1 carte Arduino Uno R3
  • 1 breadboard et fils de câblage mâle/mâle à connecteur Dupont
* kit de télécommande disponible ici.

Image.Image.Image

Principe de fonctionnement
Une diode émet des pulses en infra-rouge pour transmettre un signal de télécommande codé, vers à un récepteur infra-rouge placé dans un appareil que l'on commande à distance.

C'est le principe de télécommande utilisé sur tous les téléviseurs, magnétoscopes, appareils photos...
On peut l'utiliser pour ses projets personnels de robotique, domotique... à partir d'une petite télécommande standard, ou en décodant sa propre télécommande de téléviseur par exemple.

La portée est de plusieurs mètres, en ligne droite sans obstacles, le signal est invisible à l'œil humain.

Il existe de nombreux protocoles de transmissions (NEC, Sony SIRC, Philips RC5, Philips RC6, données brutes...) et plusieurs manières de coder les informations. Certains protocoles demande de répéter trois fois l'information.
Heureusement une bonne librairie pour Arduino gère tout ça.

Les signaux IR sont modulés à 38 kHz pour éviter les interférences avec la lumière ambiante. Le récepteur 38 kHz gère cette modulation directement.
Ceci permet de ne pas brouiller les appareils IR entre eux et d'avoir plusieurs fonctions par télécommande (on/off, choix de chaîne, réglage du volume...).

Applications
  • Télécommande par infrarouge de ses projets (robot, commande de volet roulant, domotique, éclairage...)
  • Enregistrer les codes d'une télécommande existante et les ré-émettre à l'identique pour cloner la télécommande
  • Regrouper plusieurs télécommandes en une seule (TV + Magnétoscope + DVD + éclairage du salon + chauffage).
  • Utilisation d'une télécommande existante pour un autre appareil.
  • Remplacement d'une télécommande perdue

Emission infra-rouge

Pour l'émission on peut utiliser
  • Une télécommande existante (TV, magnétoscope DVD...) dont on analyse les codes.
  • Une simple diode infra-rouge branchée sur sortie numérique (pin3), avec une résistance R1 100 Ω pour limiter le courant.
  • Une petite télécommande standard (21 boutons) à usage assez universel (solution la plus pratique)

Réception du signal
Le détecteur (3 broches) est branché sur une broche digitale pin11.
Image.Image

Récepteur -->Arduino
  • De gauche à droite, vu de face, broches 1 OUT, 2 GND, 3 VCC sur le composant seul.
  • Attention, sur la plaquette PCB le brochage est inversé, de gauche à droite on a
    GND (indiqué -), VCC (au centre), OUT (indiqué S)
Ne pas inverser le câblage au risque de griller le récepteur.
Image

Le bon fonctionnement du récepteur est indiqué par une petite led rouge sur le PCB qui s'allume à chaque réception.

Câblage :
Image.Image

Image

Programmation
Télécharger et installer l'excellente librairie #include <IRremote.h> réalisée par Ken Shirriff .
Elle comporte deux fichiers IRremote.cpp et IRremote.h et un sous-répertoire examples
Il faut aussi installer la librairie IRremoteInt.h

Exemple de code de réception

Code: Tout sélectionner
#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Initialise le recepteur
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Recoit la valeur suivante
  }
}


Utilisation
Le serial monitor de l'IDE Arduino va directement afficher les codes reçus par la télécommande.
La petite led témoin sur la plaquette du récepteur s'allume lors d'une réception de signal de télécommande IR.

Décodage des touches de la télécommande standard à 21 boutons
Petit modèle simple, assez universel et bon marché, qui convient à la plupart des projets.
Image

On obtient les codes suivants :
Image

Déclenchements d'appareils photos numériques
Image

Quelques exemples
  • Télécommande Pentax, le code 8DCDAE60 permet de prendre une photo (testé avec Pentax Optio-W90)
  • Télécommande Nikon, le code 22AE7A29 = shutter ON (testé avec Nikon D70)

Décoder une télécommande de TV infra-rouge
Exemple de décodage des signaux d'une télécommande de téléviseur.
Il en existe des dizaines, toutes différentes, appuyez sur les boutons un par un, et notez dans le Serial monitor de l'IDE arduino les codes renvoyés.
Image

On obtient ces codes
Image

Vous pourrez ensuite programmer votre carte Arduino pour utiliser les codes de votre choix (par exemple ceux non utilisés par la TV) pour d'autres usages :
monter ou baisser des volets roulants, moduler l'éclairage, régler le chauffage (relais)...

Ou piloter un robot, un jouet, etc...les possibilités sont infinies.


Références
La datasheet du 1838B (brochage du composant seul)
http://pdf.datasheetcatalog.com/datashe ... 155_DS.pdf

Le brochage du PCB comportant le détecteur IR
http://grenville.wordpress.com/2012/07/ ... -receiver/

Télécharger la librairie infrared pour Arduino et l'installer dans un dossier IRremote
https://github.com/shirriff/Arduino-IRremote

La page de référence de Ken Shirriff (auteur de la librairie)
http://www.righto.com/2009/08/multi-pro ... brary.html

Tutoriel IR en anglais
http://www.righto.com/2009/08/multi-pro ... brary.html

Utilisation du kit infra rouge (avec codes de télécommande)
http://arduino-info.wikispaces.com/IR-RemoteControl

Librairie Rc5
http://www.pjrc.com/teensy/td_libs_IRremote.html
tiptopboards - admin
Avatar de l’utilisateur
tiptop
Administrateur du site
 
Messages: 88
Inscription: Mar 13 Aoû 2013 20:38
Localisation: 38

Re: Télécommande par infrarouge - Tutoriel Arduino

Messagepar pinou29 » Ven 25 Juil 2014 12:07

Bonjour.
Pardon pour cette question de débutant, mais il est souvent demandé, comme pour cette application de télécharger et d'installer une ou des librairies, un membre de ce forum aurait-il la gentillesse de bien vouloir m'expliquer comment faire cette manip, quel fichier, dans quel dossier, faut-il supprimer des fichiers existant dans des dossiers en place.............
"Programmation
Télécharger et installer l'excellente librairie #include <IRremote.h> réalisée par Ken Shirriff .
Elle comporte deux fichiers IRremote.cpp et IRremote.h et un sous-répertoire examples
Il faut aussi installer la librairie IRremoteInt.h"
Merci.
Bernard.
Breton avant d'être Français.
En Bretagne, la pluie ne mouille que les cons (Olivier de kersauson)
pinou29
 
Messages: 5
Inscription: Jeu 24 Juil 2014 21:23

Re: Télécommande par infrarouge - Tutoriel Arduino

Messagepar pinou29 » Ven 31 Oct 2014 23:03

Bonjour.
Pourquoi je n'ai pas les mêmes résultats qui s'affichent selon la durée d'appuie sur la même touche de la télécommande ?
Merci.
Bernard.
Breton avant d'être Français.
En Bretagne, la pluie ne mouille que les cons (Olivier de kersauson)
pinou29
 
Messages: 5
Inscription: Jeu 24 Juil 2014 21:23

Re: Télécommande par infrarouge - Tutoriel Arduino

Messagepar tiptop » Lun 3 Nov 2014 16:09

La télécommande envoie plusieurs salves successives si on garde un bouton appuyé.

Certaines peuvent avoir un bouton qui joue plusieurs fonctions différentes selon la durée de l'appui.
tiptopboards - admin
Avatar de l’utilisateur
tiptop
Administrateur du site
 
Messages: 88
Inscription: Mar 13 Aoû 2013 20:38
Localisation: 38


Retourner vers Capteurs et composants

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités