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
..
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.
.
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)
Le bon fonctionnement du récepteur est indiqué par une petite led rouge sur le PCB qui s'allume à chaque réception.
Câblage :
.
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.
On obtient les codes suivants :
Déclenchements d'appareils photos numériques
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.
On obtient ces codes
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