• Arduino
  • Raspberry Pi
  • Micro:Bit

Peut recevoir des signaux infrarouges et les sortir à la sortie du signal sous forme de séquence numérique.

En outre, la LED intégrée au module clignote brièvement lorsqu'un signal infrarouge a été détecté.

Données techniques

Fréquence de la porteuse 38kHz

Affectation des broches

Exemple de code Arduino

Affectation des broches Arduino

Arduino Récepteur
Pin 2 Signal
5V +V
GND GND

Avec l'aide du module capteur KY-022, un récepteur infrarouge peut être construit. Pour cela, seuls le module récepteur infrarouge et un seul Arduino sont nécessaires. Celui-ci agit alors comme un récepteur des signaux et les émet sur la console série.

Pour l'exemple de code suivant, une bibliothèque supplémentaire est nécessaire :

Arduino-IRremote par Ken Shirriff | publié sous la licence MIT.

L'exemple ci-dessous utilise cette bibliothèque - nous vous recommandons de la télécharger depuis Github, de la décompresser et de la copier dans le dossier des bibliothèques Arduino, qui se trouve par défaut dans (C:\User[nom d'utilisateur]\Documents\Arduino\libraries), afin qu'elle soit disponible pour cet exemple de code et les projets suivants. Alternativement, ceci est également inclus dans le paquet de téléchargement ci-dessous.

Dans les systèmes d'émission et de réception infrarouge, il existe différents protocoles dans lesquels les données peuvent être envoyées et reçues. Dans l'exemple suivant, l'exemple SimpleReceiver modifié est utilisé pour la réception - la bibliothèque "Arduino-IRremote" utilisée s'occupe elle-même de la conversion dans la séquence de données correcte. Il existe cependant d'autres protocoles/codifications au sein de la bibliothèque - ceux-ci sont indiqués dans la documentation/le code de la bibliothèque. Documentation

Veuillez noter: Un fichier supplémentaire est nécessaire pour l'exécution de l'exemple de code. Celui-ci s'ouvre automatiquement dès que vous ouvrez le code d'exemple de la bibliothèque Arduino-IRremote. Ouvrez donc d'abord le code d'exemple de la manière suivante : Fichier -> Exemples -> IRremote -> SimpleReceiver. Vous pouvez maintenant remplacer le code d'exemple par notre exemple modifié.

Code pour le récepteur

/*
 * SimpleReceiver.cpp
 *
 * Demonstrates receiving NEC IR codes with IRrecv
 *
 *  Copyright (C) 2020-2021  Armin Joachimsmeyer
 *  armin.joachimsmeyer@gmail.com
 *
 *  This file is part of Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote.
 *
 *  MIT License
 */

/*
 * Specify which protocol(s) should be used for decoding.
 * If no protocol is defined, all protocols are active.
 */
//#define DECODE_DENON        // Includes Sharp
//#define DECODE_JVC
//#define DECODE_KASEIKYO
//#define DECODE_PANASONIC    // the same as DECODE_KASEIKYO
//#define DECODE_LG
#define DECODE_NEC          // Includes Apple and Onkyo
//#define DECODE_SAMSUNG
//#define DECODE_SONY
//#define DECODE_RC5
//#define DECODE_RC6

//#define DECODE_BOSEWAVE
//#define DECODE_LEGO_PF
//#define DECODE_MAGIQUEST
//#define DECODE_WHYNTER

//#define DECODE_DISTANCE     // universal decoder for pulse width or pulse distance protocols
//#define DECODE_HASH         // special decoder for all protocols

#include <Arduino.h>

/*
 * Define macros for input and output pin etc.
 */
#include "PinDefinitionsAndMore.h"

#include <IRremote.h>

void setup() {
    Serial.begin(115200);
    // Just to know which program is running on my Arduino
    Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE));

    /*
     * Start the receiver, enable feedback LED and take LED feedback pin from the internal boards definition
     */
    IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK, USE_DEFAULT_FEEDBACK_LED_PIN);

    Serial.print(F("Ready to receive IR signals at pin "));
    Serial.println(IR_RECEIVE_PIN);
}

void loop() {
    /*
     * Check if received data is available and if yes, try to decode it.
     * Decoded result is in the IrReceiver.decodedIRData structure.
     *
     * E.g. command is in IrReceiver.decodedIRData.command
     * address is in command is in IrReceiver.decodedIRData.address
     * and up to 32 bit raw data in IrReceiver.decodedIRData.decodedRawData
     */
    if (IrReceiver.decode()) {

        // Print a short summary of received data
        IrReceiver.printIRResultShort(&Serial);
        if (IrReceiver.decodedIRData.protocol == UNKNOWN) {
            // We have an unknown protocol here, print more info
            IrReceiver.printIRResultRawFormatted(&Serial, true);
        }
        Serial.println();

        /*
         * !!!Important!!! Enable receiving of the next value,
         * since receiving has stopped after the end of the current received data packet.
         */
        IrReceiver.resume(); // Enable receiving of the next value

        /*
         * Finally, check the received data and perform actions according to the received command
         */
        if (IrReceiver.decodedIRData.command == 0x34) {
            Serial.println("Signal received");
        } else if (IrReceiver.decodedIRData.command == 0x36) {
            Serial.println("Signal received and it is a different one this time around");
        } else {
            Serial.println("Signal received but sadly not the correct one");
        }
    }
}

Télécharger l'exemple de programme

KY022-Arduino.zip

Peut recevoir des signaux infrarouges et les sortir à la sortie du signal sous forme de séquence numérique.

En outre, la LED intégrée au module clignote brièvement lorsqu'un signal infrarouge a été détecté.

Données techniques

Fréquence de la porteuse 38kHz

Affectation des broches

Exemple de code Raspberry Pi

Affectation des ports du Raspberry Pi :

Raspberry Pi Récepteur
GPIO15 [Pin 10] Signal
3,3 V [Pin 17] +V
GND [Pin 25] GND

Pour la configuration initiale, ouvrez d'abord votre fichier config.txt en utilisant la commande suivante :

sudo nano /boot/config.txt

Ajoutez les configurations suivantes à la fin du fichier ici :

dtoverlay=gpio-ir,gpio_pin=15
dtoverlay=gpio-ir-tx,gpio_pin=14

Avec la combinaison de touches [CTRL+O], vous pouvez enregistrer le fichier. Confirmez avec [Enter] et quittez l'éditeur avec la combinaison [CTRL+X]. Redémarrez maintenant votre Raspberry Pi avec la commande suivante :

sudo reboot

Installez maintenant le module ir-keytable :

sudo apt-get install ir-keytable -y

La commande suivante permet de déterminer l'identification de l'appareil. Ceci est nécessaire pour pouvoir s'adresser au récepteur dans la suite du processus :

ir-keytable

Die erste Zeile der Ausgabe sollte etwa so aussehen:

Found /sys/class/rc/rc0/ (/dev/input/event0) with:

Hier ist zu lesen, dass wir unseren Empfänger über die Kennung rc0 ansprechen können. Daher starten wir nun den Empfang über den folgenden Befehl:

ir-keytable -t -s rc0

Peut recevoir des signaux infrarouges et les sortir à la sortie du signal sous forme de séquence numérique.

En outre, la LED intégrée au module clignote brièvement lorsqu'un signal infrarouge a été détecté.

Données techniques

Fréquence de la porteuse 38kHz

Affectation des broches

Exemple de code Micro:Bit

Affectation des broches Micro:Bit :

Micro:Bit Récepteur
Pin 1 Signal
3V +V
GND GND

Ceci est un exemple MakeCode pour Micro:Bit qui fait essentiellement la même chose que les exemples des deux autres variantes. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.

Pour l'exemple de code suivant, une bibliothèque supplémentaire est nécessaire :

pxt-makerbit-ir-receiver by 1010Technologies | publié sous la licence MIT.

Vous devez ajouter cette bibliothèque à votre IDE avant d'utiliser le code.

Pour ce faire, allez dans Extensions dans votre IDE et, en utilisant l'URL suivante https://github.com/1010Technologies/pxt-makerbit-ir-receiver.git, recherchez la bibliothèque pour l'ajouter. Il convient de mentionner que, parfois, la bibliothèque n'apparaît qu'après avoir redémarré l'IDE.

Téléchargement d'un exemple de programme

microbit-KY-022.zip