Arduino : initiation à l’usage des radioamateurs. 7ème partie.

Et si nous apprenions à utiliser une télécommande, nous pourrions piloter un récepteur, un rotor et bien d’autres appareillages.

Pour moins d’1 €, on a une télécommande (sans pile) et un récepteur infrarouge.

Comme il existe plusieurs modèles, nous allons « nous amusez » à tester les codes renvoyés avant de les utiliser.

Le câblage est vraiment simple, le récepteur comporte 3 bornes, 2 pour l’alimentation (+ et – 5V) et une pour les signaux.

On garde toujours notre afficheur LCD et on ajoute le récepteur connecté par exemple sur la borne numérique 3

//  <<<<  Déclarer >>>>
#include <IRremote.h>               // on appelle la biblihoteque 
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

int Borne_Reception = 3;             // on affecte la borne 3 au
IRrecv RecepteurIR(Borne_Reception); // recepteur infrarouge
decode_results Valeur_lue;           // la variable Valeur_lue 
                                     // contiendra le code
//  <<<< Préparer >>>>
void setup()
{
lcd.begin(16, 2);
  RecepteurIR.enableIRIn();        // Initialise le recepteur
  lcd.print("EN RECEPTION");
}

//  <<<< Répéter >>>>  
void loop() {
  if (RecepteurIR.decode(&Valeur_lue)) { // on scrute le récepteur 

   lcd.setCursor(0, 1);           // on se positionne colonne 1 ligne 2
   lcd.print ("              ");  // on efface la ligne
   lcd.setCursor(0, 1);           // on se positionne colonne 1 ligne 2
 lcd.print(Valeur_lue.value,HEX); // on affiche la valeur hexadecimale 
                                  // de la touche pressee 
    delay (1000);
    RecepteurIR.resume();         // Recoit la valeur suivante
  }
}

Ce « bout de programme » va nous permettre de relever les codes des touches pour nos utilisations futures.

Dans l’exemple ci dessous on a pressé la touche 2 et le code retourné est FF6229D.

Autres touches :
1 …………………..renvoie FFA25D
2 …………………..renvoie FF629D
3 …………………..renvoie FFE21D
flèche haute ..renvoie FF18E7
flèche basse ..renvoie FF4AB5
flèche gauche renvoie FF10EF
flèche droite renvoie FF5AA5 … etc …

Et voilà le code permettant de tester et d’afficher quelques touches pressées, il suffira dans nos (très) prochaines utilisations de remplacer les commandes d’affichage par des actions (commuter un relais, allumer une LED , changer une fréquence …. )

#include <IRremote.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

int Borne_Reception = 3;
IRrecv RecepteurIR(Borne_Reception);
decode_results Valeur_lue;

void setup()
{
lcd.begin(16, 2);
  RecepteurIR.enableIRIn(); // Initialise le recepteur
  lcd.print("EN RECEPTION");
}

void loop() {
  if (RecepteurIR.decode(&Valeur_lue)) {

    lcd.setCursor(0, 1);
    if (Valeur_lue.value ==0xFFA25D) {lcd.print("T1");}
    if (Valeur_lue.value ==0xFF629D) {lcd.print("T2");}
    if (Valeur_lue.value ==0xFFE21D) {lcd.print("T3");}
    if (Valeur_lue.value ==0xFF18E7) {lcd.print("HH");}
    if (Valeur_lue.value ==0xFF4AB5) {lcd.print("BB");}
    if (Valeur_lue.value ==0xFF10EF) {lcd.print("GG");}
    if (Valeur_lue.value ==0xFF5AA5) {lcd.print("DD");}

   lcd.setCursor(4, 1);
   lcd.print ("          ");
   lcd.setCursor(4, 1);
    lcd.print(Valeur_lue.value,HEX);
    delay (1000);
    RecepteurIR.resume(); // Recoit la valeur suivante
  }
}

Laisser un commentaire

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