3 novembre 2013

télécommande IR arduino

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

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 la librairie #include <IRremote.h>
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

Aucun commentaire:

Enregistrer un commentaire