Note

Bonjour et bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts sur Facebook ! Plongez plus profondément dans Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.

  • Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.

  • Promotions festives et cadeaux : Participez à des cadeaux et à des promotions de fêtes.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

Récepteur Infrarouge

Aperçu

Un récepteur infrarouge est un composant qui reçoit des signaux infrarouges et peut indépendamment recevoir des rayons infrarouges et produire des signaux compatibles avec le niveau TTL. Il est de taille similaire à un transistor encapsulé dans du plastique et convient à tous les types de télécommandes infrarouges et de transmissions infrarouges.

Composants nécessaires

Pour ce projet, nous avons besoin des composants suivants.

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ARTICLES DANS CE KIT

LIEN

Elite Explorer Kit

300+

Elite Explorer Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Arduino Uno R4 WiFi

-

Plaque de Montage (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Résistance

ACHETER

Récepteur Infrarouge

ACHETER

Câblage

../_images/22-ir_receiver_bb.png

Schéma de câblage

../_images/22_irrecv_schematic.png

Code

Note

  • Vous pouvez ouvrir le fichier 22-ir_receiver.ino sous le chemin elite-explorer-kit-main\basic_project\22-ir_receiver directement.

  • Ou copiez ce code dans l’IDE Arduino.

  • La bibliothèque IRremote est utilisée ici, vous pouvez l’installer depuis le Gestionnaire de Bibliothèques.

    ../_images/22_irrecv_lib.png

Note

  • Il y a une pièce en plastique transparent à l’arrière de la télécommande pour couper l’alimentation, retirez-la avant d’utiliser la télécommande.

Analyse du code

Ce code est conçu pour fonctionner avec une télécommande infrarouge (IR) en utilisant la bibliothèque IRremote. Voici le détail :

  1. Inclusion de la bibliothèque et définition des constantes. Tout d’abord, la bibliothèque IRremote est incluse et le numéro de broche pour le récepteur IR est défini comme étant 2.

    #include <IRremote.h>
    const int IR_RECEIVE_PIN = 2;
    
  2. Initialisation de la communication série à un débit de 9600 bauds. Initialisation du récepteur IR sur la broche spécifiée (IR_RECEIVE_PIN) et activation du retour d’information LED (si applicable).

    void setup() {
        Serial.begin(9600);                                     // Démarrer la communication série à 9600 bauds
        IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);  // Démarrer le récepteur IR
    }
    
  3. La boucle s’exécute en continu pour traiter les signaux entrants de la télécommande IR.

    void loop() {
      // Vérifie s'il y a un signal IR entrant
      if (IrReceiver.decode()) {
        // IrReceiver.printIRResultShort(&Serial);                 // Imprimer les données reçues en une ligne
        // Serial.println(IrReceiver.decodedIRData.command, HEX);  // Imprimer la commande en format hexadécimal
        Serial.println(decodeKeyValue(IrReceiver.decodedIRData.command));  // Mapper et imprimer le signal IR décodé à la valeur de la touche correspondante
    
        IrReceiver.resume();  // Activer la réception de la prochaine valeur
      }
    }
    
    • Vérifie si un signal IR est reçu et décodé avec succès.

    • Décode la commande IR et la stocke dans decodedValue en utilisant une fonction personnalisée decodeKeyValue().

    • Imprime la valeur IR décodée sur le moniteur série.

    • Reprend la réception des signaux IR pour le signal suivant.


  4. Fonction auxiliaire pour mapper les signaux IR reçus aux touches correspondantes

    ../_images/22_irrecv_key.png
    // Fonction pour mapper les signaux IR reçus aux touches correspondantes
    String decodeKeyValue(long result) {
      // Chaque case correspond à une commande IR spécifique
      switch (result) {
        case 0x16:
          return "0";
        case 0xC:
          return "1";
        case 0x18:
          return "2";
        case 0x5E:
          return "3";
        case 0x8:
          return "4";
        case 0x1C:
          return "5";
        case 0x5A:
          return "6";
        case 0x42:
          return "7";
        case 0x52:
          return "8";
        case 0x4A:
          return "9";
        case 0x9:
          return "+";
        case 0x15:
          return "-";
        case 0x7:
          return "EQ";
        case 0xD:
          return "U/SD";
        case 0x19:
          return "CYCLE";
        case 0x44:
          return "PLAY/PAUSE";
        case 0x43:
          return "FORWARD";
        case 0x40:
          return "BACKWARD";
        case 0x45:
          return "POWER";
        case 0x47:
          return "MUTE";
        case 0x46:
          return "MODE";
        case 0x0:
          return "ERROR";
        default:
          return "ERROR";
      }
    }