Arduino capteur infrarouge vs1838b , utilise les boutons inutile de ta télécommande

7797

Aujourd’hui on va apprendre à comment utiliser l’infrarouge avec arduino.
Tu vas pouvoir utiliser les touches inutiles de la télécommande de ta TV ou utiliser la télécommande qui sont souvent dans les kit arduino.

TutoInfrarouge_VS1838B

 

// Copyright https://retroetgeek.com
#include <IRremote.h>
#define RECV_PIN 11
#define ROUGE_PIN 6
#define VERT_PIN 5
#define BLEU_PIN 4
#define LED_PIN 7

String mode = "" ;
String valueColor = "" ;
String hexIr = "" ;
IRrecv irrecv(RECV_PIN);
decode_results results;

/*
0 ffb04f
1 ff30cf
2 ff18e7
3 ff7a85
4 ff10ef
5 ff38c7
6 ff5aa5
7 ff42bd
8 ff4ab5
9 ff52ad
Vol- ff6897
Vol+ ff9867
Arriere ffe01f
Avant ffa857
Lecture ff906f
Mode ff22dd
Enter ff02fd
Eq ffc23d
OnOff ffa25d
Stop ff629d
Mute ffe21d

 */

void setup()
{
  Serial.begin(57600);
  irrecv.enableIRIn(); // Start the receiver

  pinMode(ROUGE_PIN,OUTPUT);
  pinMode(VERT_PIN,OUTPUT);
  pinMode(BLEU_PIN,OUTPUT);
  pinMode(LED_PIN,OUTPUT);

}

void loop()
{
  // catch IR
  if (irrecv.decode(&results))
    {
    // tansform value of IR in hex ( decimal to hex )
    hexIr = String(results.value, HEX);
    Serial.print("ValueIr ");  
    Serial.println(hexIr);
     irrecv.resume(); // Receive the next value
     // if Mute we can define value of RED
     if(hexIr == "ffe21d"){
        mode = "rouge";
        Serial.println("Mode Rouge");
        ledOn ();
     }//EQ green
     if(hexIr == "ffc23d"){
        mode = "vert";
        Serial.println("Mode Vert");
        ledOn ();
     }//lecture blue
     if(hexIr == "ff906f"){
        mode = "bleu";
        Serial.println("Mode Bleu");
        ledOn ();
     }

     // validate and apply color with enter
     if(hexIr == "ff02fd"){
      Serial.print("ENTRER ");
      Serial.println(valueColor.toInt());

      // write value for red
        if(mode == "rouge"){
          analogWrite(ROUGE_PIN,valueColor.toInt());
          valueColor = "";
          mode = "";
          Serial.println("OK Rouge ");
        }
      // write value for green
        if(mode == "vert"){
          analogWrite(VERT_PIN,valueColor.toInt());
          valueColor = "";
          mode = "";
        }
        // write value for blue
        if(mode == "bleu"){
          analogWrite(BLEU_PIN,valueColor.toInt());
          valueColor = "";
          mode = "";
        }
     }

      // STOP
      if(hexIr =="ff629d"){
        analogWrite(ROUGE_PIN,0);
        analogWrite(VERT_PIN,0);
        analogWrite(BLEU_PIN,0);
      }

     // mode color to catch value 
     if( mode != "" ){
        //hexIr
        if( hexIr == "ffb04f"){
          // 0
            valueColor+="0";
            ledOn();
        }
        else if( hexIr == "ff30cf"){
          // 1
            valueColor+="1";
            ledOn();
        }
        else if( hexIr == "ff18e7"){
          // 2
            valueColor+="2";
            ledOn();
        }
        else if( hexIr == "ff7a85"){
          // 3
            valueColor+="3";
            ledOn();
        }
        else if( hexIr == "ff10ef"){
          // 4
            valueColor+="4";
            ledOn();
        }
        else if( hexIr == "ff38c7"){
          // 5
            valueColor+="5";
            ledOn();
        }
        else if( hexIr == "ff5aa5"){
          // 6
            valueColor+="6";
            ledOn();
        }
        else if( hexIr == "ff42bd"){
          // 7
            valueColor+="7";
            ledOn();
        }
        else if( hexIr == "ff4ab5"){
          // 8
            valueColor+="8";
            ledOn();
        }
        else if( hexIr == "ff52ad"){
          // 9
            valueColor+="9";
            ledOn();
        }
     }
    }
}

// show when data received
void ledOn (){
  digitalWrite(LED_PIN,HIGH);
  delay(20);
  digitalWrite(LED_PIN,LOW);
}

En matériel il nous faut :
– 1 arduino
– 1 capteur infrarouge VS1838B
– 1 led rgb KY-016 (option)
– 1 led et sa résistance (option)
– 1 télécommande

J’ai utilisé une led rgb KY-016 pour montrer ce que l’on peut faire avec un capteur infrarouge, ici récupérer une information donnée par la télécommande et l’utiliser dans notre programme.

Le but du programme, j’ai 3 boutons, 1 bouton pour la led rouge,1 pour la led verte etc …

Avec les chiffres je vais définir la valeur à envoyer à la led avec le pwm et je valide avec un bouton.

Pour le cablage la branche 1 de l’infrarouge est le signal reçu branché sur le pin 11 de l’arduino, la branche 2 le gnd et la branche 3 le 5V.

Pour la led rgb, rouge pin 6, vert pin 5, bleu pin 4 et pour ma led de visualisation du signal au pin 7.

Pour le code j’utilise la bibliothèque IRremote et je défini les pin que je vais utiliser.

J’ai défini des variables en string pour le mode (couleur), la valeur de la couleur et la valeur du signal reçu.

On appelle ensuite IRrecv irrecv(RECV_PIN); et decode_results results; pour notre capteur IR.

Partie setup on active la réception de l’infrarouge avec irrecv.enableIRIn(); et on définit nos pin led en output.

Dans la boucle la première condition s’active quand on reçoit un signal IR, je transforme la valeur reçue en valeur hexadécimale et je la stocke dans hexIr.

Le programme se prépare au nouveau signal avec irrecv.resume(); mais nous allons traiter les informations reçues à la suite.

En premier, le code IR reçu correspond t’il à un mode (couleur), rouge, vert, ou bleu et si oui je donne la valeur correspondante à la variable mode.

Si on enregistre un signal du bouton Entrer pour moi j’applique le code couleur enregistré (un peu plus loin dans le code) à la couleur du mode précédemment enregistré.

J’ai un code pour le bouton stop de ma télécommande ou je remet à 0 mes led rgb.

Ensuite j’ai la partie traitement des numéros de ma télécommande et je ne peux que traiter ses valeurs avec un mode ( rouge, vert ou bleu).

Je lie chaque bouton à une valeur et je la concaténé sur valueColor et cette valeur sera appliquée au moment du bouton entrer(plus haut).

Et la petite fonction ledOn est utilisé pour allumer la led de visualisation un court instant quand on capte un signal valide.

Télécharger le code :
Tuto Ir Remote RGB
– Librairie Ir : IRremote by shirriff ( ou https://github.com/z3t0/Arduino-IRremote )

N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne instagramtwitter , facebook ,youtube ; si vous ne comprenez pas certaines parties du tutoriel n’hésitez pas , me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel  et à partager les projets que vous aimeriez créer etc…

Comme toujours allez sur la page de C’est quoi Retro et Geek pour connaître tout ce que je recherche à faire sur la chaîne.

Merci les RetroGeeker et RetroGeekeuse

Comments are closed.