Arduino tour, étape 5 : utilisation d’une télécommande infrarouge

Arduino tour, étape 5 : utilisation d’une télécommande infrarouge

Bailo Diallo- stagiaire chez DEFAR- SCI

Bonjour !

En pratique avec arduino, nous avons jusqu’ici eu à travailler avec certains composants que sont les leds, les boutons poussoirs, les photorésistances. Au cours de notre prochaine expérience, nous irons plus loin en essayant de regrouper le maximum de ces composants pour en faire un seul système compact. Mais avant cela, nous allons d’abord étudier un dernier élément qui nous est très familier et passionnant. Il s’agit de la télécommande infrarouge. Après cela nous essaierons de réunir les composants (led, bouton poussoir, télécommande, photorésistance) pour faire un seul système simulant le fonctionnement d’une télévision.

La commande à distance que nous rencontrons dans la plupart des cas sont des commandes à infrarouge (fonctionnant dans le spectre 750 nm-0,1 nm). Elle est composée d’un récepteur et d’un émetteur infrarouges.

Le principe de fonctionnement est très simple. L’émetteur envoie les informations codées sous forme d’un signal infrarouge capable d’être lu et compris par le récepteur. Cette information est ensuite traduite en signal électrique très faible qui est amplifié. Cela permet d’effectuer la commande de votre circuit électronique. Vous avez ci-dessous à gauche un récepteur infrarouge, à droite une commande comportant l’émetteur.

C’est l’image de la commande et du récepteur avec lesquels nous allons travailler au Rose Dieng Lab (Fig 1).

À droite vous avez la commande infrarouge et à gauche le récepteur infrarouge.

Fig 1: récepteur (gauche), émetteur (droite)

 

Dans un premier temps, nous allons utiliser cette commande pour faire l’allumage d’une simple led, histoire de bien se familiariser avec le matériel et ensuite, nous pourrons l’utiliser pour faire des choses plus intéressantes.

Pour cette expérience nous aurons besoin, en plus de la commande et de son récepteur:

  • d’une led;
  • d’une carte arduino;
  • des fils de connection.

Câblage

Ici on doit câbler le récepteur en respectant la polarité. C’est un composant tripolaire (3 pattes). Deux sont utilisées pour la polarisation du circuit et la troisième pour le signal. Celle-ci sera contrôlée par la carte arduino. Avant de commencer le câblage, il est recommandé de bien chercher à différencier les 3 pattes : savoir quelle patte est adéquate pour le 5V, pour la masse et pour le signal. En effet, une confusion de ces dernières entraînerait un mauvais branchement qui peut mener à la destruction du matériel.

Une fois le récepteur câblé, on peut insérer un programme test fourni avec la librairie pour vérifier que le câblage est réussi.

  • Si on appuie sur la commande on peut visualiser avec le moniteur série le code hexadécimal correspondant à chaque touche de la télécommande.

Voici le schéma de câblage qu’on a obtenu dans notre LAB.

Fig 2 : câblage

 

 

De la droite vers la gauche on a le fil rouge pour la tension 5V, le fil noir pour la masse et le fil blanc pour le signal.

Pour rappel, ce câblage n’est pas valable pour tous les récepteurs infrarouges. Dans notre cas, cela a été a indiqué ainsi dans le datasheet; nous n’avons fait que l’appliquer.

Programme

Le programme à tester est le suivant :

#include <IRremote.h>/* C’est la librairie qui permet la communication entre l’arduino et le récepteur infrarouge.

Sans cette librairie la carte ne saura pas de quoi il s’agit.

Une librarie est un ensemble de codes préétablis écrits par les concepteurs du récepteur infrarouge. C’est grâce à elle que nous n’avons écrit que 10 lignes de code. */

int RECV_PIN = 11; //déclaration du pin 11 (comment le pin récepteur du signal (fil blanc) permet de lire les données du capteur et l’achemine vers l’arduino.)

IRrecv irrecv(RECV_PIN);

decode_results results;//permet de coder le résultat du signal émis

void setup()

{

Serial.begin(9600);/*initialization port série sert à afficher le résultat décodé. C’est notre afficheur à écran qui est très utile pour tester les prototypes*/

irrecv.enableIRIn(); /* désigne la fonction du récepteur pour l’initialisation du récepteur. Elle a été programmée préalablement dans la librairie.*/

}

void loop() {

if (irrecv.decode(&results)) {

Serial.println(results.value, HEX);// désigne l’affichage de la valeur correspondante.

irrecv.resume(); // Receive the next value} // représente la condition qui permet de tester le signal et de l’afficher dans le moniteur série.

delay(100);// désigne l’attente.

Ceux qui ne savent pas programmer se demandent ce qu’est ce charabia…

Eh bien d’après ma compréhension, ceci est un programme arduino comprenant trois parties :

– une partie déclaration

– une partie paramétrage et

– un partie exécutive.

Dans la partie déclaration, on déclare les variables que l’on souhaite utiliser dans notre programme.

Par exemple pour allumer une led, on présente la led à la carte.

La partie paramétrage sert, quant à elle, à transmettre à la carte le rôle de la led : une ENTRÉE ou UNE SORTIE.

Ces deux parties ne s’exécutent qu’une fois lors du lancement.

La troisième partie, elle, est le lieu où tout se passe. C’est là où les instructions sont données à la carte.

En résumé un programme arduino se fait de la manière suivante :

  • D’abord on présente à la carte le composant qu’elle va commander.
  • Ensuite on définit sur la carte l’objet de ce composant : elle fait entrer une donnée dans la carte ou elle puise une donnée dans la carte SORTIE.

Les sorties peuvent être : des leds, des moteurs,des servomoteurs… Et les entrées rassemblent l’ensemble des capteurs boutons, touches….

Enfin on donne à la carte la liste des choses à faire faire au composant.

Exemple d’instruction pour le clignotement d’une lampe:

  • Allumer la lampe
  • Attendre une seconde
  • Éteindre la lampe
  • Attendre une seconde…

Maintenant que vous savez comment est structuré un programme arduino et comment marche un capteur infrarouge, nous allons maintenant allumer notre lampe avec la commande.

Pour cela, câblons la led en plus du récepteur infrarouge (voir fig 2).

Pour le programme il suffit juste de mettre une condition à partir des codes hexadécimaux.

Voici le bout de code qu’on a ajouté :

if(results.value==0xFFA25D){digitalWrite(led,HIGH);}

if(results.value==0xFF6897){

digitalWrite(led,LOW);}}

irrecv.resume(); //attendre une autre valeur.

delay(100);}

Explication :

FFA25D correspond au bouton ON de la commande et FF6897 au bouton zéro de la commande.

Si la valeur reçue correspond à celle du FFA25D, ON allume la lampe

Si la valeur reçue correspond à celle de FF6897, ON éteint la lampe.

Eh oui, c’est aussi simple que cela. Téléversez le code et observons le résultat.

Une fois le câblage réalisé on peut observer le résultat suivant :

Un appui sur le bouton ON de la commande entraîne l’allumage de la led et un autre appui sur le bouton 0 éteint la led.

Fig 3: câblage de la led

 

Fig 4: appui sur le bouton ON

 

Fig 5: led allumée

 

Fig 6: appui sur le bouton 0

 

Fig 7: led éteinte

 

Cette série d’images prouve effectivement que grâce à une commande, on peut allumer une lampe à distance. Cela nous a permis en même temps de mettre à jour nos connaissances sur les capteurs arduino.

Grâce à ces connaissances, nous commanderons à l’avenir nos montages à distance de la même manière qu’une télévision.

Et pourquoi pas en faire l’objet de notre prochain article?

 

 

Laisser un commentaire

Fermer le menu
Scroll Up