• Arduino
  • Raspberry Pi
  • Raspberry Pi Pico
  • Micro:Bit

Ce module contient une diode électroluminescente qui émet une lumière infrarouge. La lumière infrarouge est invisible pour l'œil humain, mais elle est souvent utilisée dans de nombreuses applications pratiques, comme les télécommandes ou la détection d'objets. La diode fonctionne avec une tension de 1,1 V et un courant de 20 mA. En fonction de la tension d'entrée, il est important d'utiliser des résistances préalables pour protéger la diode électroluminescente et garantir un fonctionnement sans problème. Ces pré-résistances garantissent que la bonne quantité de courant circule dans la diode, ce qui permet de l'utiliser efficacement et en toute sécurité. Ce module est idéal pour les projets nécessitant une lumière infrarouge et offre une solution fiable et simple pour vos applications infrarouges.

Données techniques
Tension directe (Vf) 1,1 V
Courant direct (If) 20 mA
Longueur d'onde d'émission 940 nm (lumière non visible)

Les désignations (Vf et If) font référence à la tension directe et au courant direct de la diode électroluminescente.

Résistances de série:

Tension d'entrée Résistance en série
3,3V 120Ω
5V 220Ω

Affectation des broches

pour les plus avancés

Sur le circuit imprimé, il est possible de souder directement la résistance requise. L'emplacement pour souder la résistance est situé directement au-dessus des broches de connexion sur le circuit imprimé.


Lors du soudage de la résistance, l'affectation des bornes est modifiée comme suit :

Arduino Émetteur
Pin 3 Signal
GND GND+Résistance
- GND

pour les débutants

Arduino Émetteur
Pin 3 Signal
- GND+Résistance
GND GND

Exemple de code

En utilisant les deux modules capteurs KY-005 et KY-022, il est possible de construire un système télécommande infrarouge + récepteur infrarouge. Pour ce faire, deux Arduinos sont nécessaires en plus des deux modules. Ceux-ci agissent alors comme un émetteur et comme un récepteur des signaux. Il est seulement important de savoir ce que le récepteur des signaux de la console série émet et ce que l'émetteur envoie, car cela doit correspondre.

Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.Les bibliothèques suivantes sont également utilisées pour l'exemple de code :

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

Vous pouvez facilement ajouter ces bibliothèques via le gestionnaire de bibliothèques de l'IDE Arduino.

Avec les systèmes de transmission infrarouge, il existe différents protocoles dans lesquels les données peuvent être envoyées. Dans l'exemple suivant, le protocole NEC est utilisé pour l'envoi à l'aide de l'exemple SimpleSender modifié et de l'exemple SimpleReceiver modifié - la bibliothèque utilisée IRremote s'occupe indépendamment de la conversion en séquence de données correcte. Cependant, il existe d'autres protocoles/encodages au sein de la bibliothèque - ceux-ci sont identifiés dans la documentation/code de la bibliothèque. Documentation.

Veuillez noter: Pour l'exécution de l'exemple de code, un fichier supplémentaire est nécessaire. Celui-ci s'ouvre automatiquement dès que vous ouvrez le code d'exemple de la bibliothèque IRremote. Ouvrez donc d'abord le code d'exemple de la manière suivante : Fichier > Exemples > IRremote > SimpleSender.

Vous pouvez maintenant remplacer le code d'exemple par notre exemple modifié. Pour télécharger le code sur l'Arduino, il suffit de cliquer sur le bouton " Upload ".

/*
 * SimpleSender.cpp
 *
 * Démonstration de l'envoi de codes IR au format standard avec adresse et commande.
 * Vous trouverez un exemple avancé d'envoi sous SendDemo.
 *
 *  Copyright (C) 2020-2022  Armin Joachimsmeyer
 *  armin.joachimsmeyer@gmail.com
 *
 * Ce fichier fait partie de Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote.
 *
 *  MIT License
 */
#include <Arduino.h>

#if !defined(ARDUINO_ESP32C3_DEV) // Ceci est dû à une erreur dans le compilateur RISC-V qui nécessite des sections de fonction inutilisées :-(.
// Désactive le code statique du récepteur comme le gestionnaire ISR pour la minuterie de réception et les données statiques IRReceiver et irparams. 
// Economise 450 octets de mémoire de programme et 269 octets de RAM lorsque les fonctions de réception ne sont pas nécessaires.
#define DISABLE_CODE_FOR_RECEIVER 
#endif

/*
 * Cet include définit les numéros actuels des broches comme IR_RECEIVE_PIN, IR_SEND_PIN pour de nombreuses cartes et architectures différentes.
 */
#include "PinDefinitionsAndMore.h"
#include <IRremote.hpp> // Intégration de la bibliothèque

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);

    Serial.begin(115200);
    while (!Serial)
        ; // Attendre que Serial soit disponible. En cours d'optimisation pour certains cœurs.

    // Juste pour savoir quel programme fonctionne sur mon Arduino
    Serial.println(F("KY-005 : Test d'émetteur infrarouge"));
    Serial.print(F("Envoyer des signaux IR à la broche "));
    Serial.println(IR_SEND_PIN);

    /*
     * La mise en place de la bibliothèque IR. C'est tout !
     */
    // Commencez par utiliser IR_SEND_PIN -défini dans PinDefinitionsAndMore.h- comme broche d'émission et activez la LED de retour sur la broche LED de retour standard.
    IrSender.begin();
    disableLEDFeedback(); // Désactiver la LED de rétroaction sur la broche standard de la LED de rétroaction
}

/*
 * Configuration des données à envoyer.
 * Dans la plupart des protocoles, les données sont envoyées avec une adresse constante de 8 (ou 16) octets.
 * et une commande variable de 8 bits.
 * Il y a des exceptions comme Sony et Denon qui ont une adresse de 5 bits.
 */
uint8_t sCommand = 0x34;
uint8_t sRepeats = 0;

void loop() {
    /*
     * Afficher les valeurs d'émission actuelles
     */
    Serial.println();
    Serial.print(F("Maintenant, l'envoi est en cours : Adresse=0x00, Commande=0x"));
    Serial.print(sCommand, HEX);
    Serial.print(F(", Répétitions="));
    Serial.print(sRepeats);
    Serial.println();

    Serial.println(F("Envoi de NEC standard avec adresse 8 bits"));
    Serial.flush();

    // La sortie du récepteur pour la première boucle doit être : Protocol=NEC Address=0x102 Commande=0x34 Raw- Dates=0xCB340102 (32 bits)
    IrSender.sendNEC(0x00, sCommand, sRepeats);

    /*
     * Incrémenter les valeurs d'émission
     */
    sCommand += 0x11;
    sRepeats++;
    // Le clip se répète à 4
    if (sRepeats > 4) {
        sRepeats = 4;
    }

    delay(1000);  // Le délai doit être supérieur à 5 ms (RECORD_GAP_MICROS), sinon le récepteur le voit comme un signal long
}

Ce module contient une diode électroluminescente qui émet une lumière infrarouge. La lumière infrarouge est invisible pour l'œil humain, mais elle est souvent utilisée dans de nombreuses applications pratiques, comme les télécommandes ou la détection d'objets. La diode fonctionne avec une tension de 1,1 V et un courant de 20 mA. En fonction de la tension d'entrée, il est important d'utiliser des résistances préalables pour protéger la diode électroluminescente et garantir un fonctionnement sans problème. Ces pré-résistances garantissent que la bonne quantité de courant circule dans la diode, ce qui permet de l'utiliser efficacement et en toute sécurité. Ce module est idéal pour les projets nécessitant une lumière infrarouge et offre une solution fiable et simple pour vos applications infrarouges.

Données techniques
Tension directe (Vf) 1,1 V
Courant direct (If) 20 mA
Longueur d'onde d'émission 940 nm (lumière non visible)

Les désignations (Vf et If) font référence à la tension directe et au courant direct de la diode électroluminescente.

Résistances de série:

Tension d'entrée Résistance en série
3,3V 120Ω
5V 220Ω

Sur le circuit imprimé, il est possible de souder directement la résistance requise. L'emplacement pour souder la résistance est situé directement au-dessus des broches de connexion sur le circuit imprimé.

Affectation des broches (Exemple On/Off)


Raspberry Pi Capteur
GPIO 15 [Pin 10] Signal
GND [Pin 6] GND

*Uniquement si la résistance en série est soudée sur le module et non connectée devant le module.

Exemple de code (Excemple On/Off)

# Required modules are imported
from gpiozero import LED
import time

# Initialize the LED on pin 15
led = LED(15)

print("LED test [press CTRL+C to end the test]")

# Main program loop
try:
    while True:
        print("LED on for 4 seconds")
        led.on()  # LED is switched on
        time.sleep(4)  # Wait mode for 4 seconds
        print("LED 2 Sekunden aus")
        led.off()  # LED is switched off
        time.sleep(2)  # Waiting mode for a further two seconds, during which the LED is then switched off

# Clean up after the program has been completed
except KeyboardInterrupt:
    led.close()  # Release of resources

Affectation des broches (Exemple de commande à distance)

Raspberry Pi Récepteur
GPIO15 [Pin 10] Signal
3.3 V [Pin 1] +V
GND [Pin 6] GND
Raspberry Pi émetteur
GPIO14 [Pin 8] Signal
GND [Pin 6] GND

Source des étapes suivantes.

Tout d'abord, ouvrez le fichier config.txt à l'aide de la commande suivante :

sudo nano /boot/config.txt

Ajoutez maintenant le contenu suivant à la fin du fichier :

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 de touches [CTRL+X]. Redémarrez maintenant votre Raspberry Pi avec la commande suivante :

sudo reboot

Maintenant, installez le module ir-keytable :

sudo apt-get install ir-keytable -y

Avec la commande suivante, vous pouvez déterminer l'identification de l'appareil. Ceci est nécessaire pour pouvoir s'adresser au récepteur dans la suite de la procédure :

sudo ir-keytable

La première ligne de la sortie devrait ressembler à ceci :

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

On peut y lire que nous pouvons adresser notre récepteur via l'identification rc0. Nous commençons donc la réception maintenant par la commande suivante :

ir-keytable -t -s rc0

Ce module contient une diode électroluminescente qui émet une lumière infrarouge. La lumière infrarouge est invisible pour l'œil humain, mais elle est souvent utilisée dans de nombreuses applications pratiques, comme les télécommandes ou la détection d'objets. La diode fonctionne avec une tension de 1,1 V et un courant de 20 mA. En fonction de la tension d'entrée, il est important d'utiliser des résistances préalables pour protéger la diode électroluminescente et garantir un fonctionnement sans problème. Ces pré-résistances garantissent que la bonne quantité de courant circule dans la diode, ce qui permet de l'utiliser efficacement et en toute sécurité. Ce module est idéal pour les projets nécessitant une lumière infrarouge et offre une solution fiable et simple pour vos applications infrarouges.

Données techniques
Tension directe (Vf) 1,1 V
Courant direct (If) 20 mA
Longueur d'onde d'émission 940 nm (lumière non visible)

Les désignations (Vf et If) font référence à la tension directe et au courant direct de la diode électroluminescente.

Résistances de série:

Tension d'entrée Résistance en série
3,3V 120Ω
5V 220Ω

Sur le circuit imprimé, il est possible de souder directement la résistance requise. L'emplacement pour souder la résistance est situé directement au-dessus des broches de connexion sur le circuit imprimé.

Affectation des broches (Exemple On/Off)


Micro:Bit Émetteur
Pin 0 Signal
- +V
GND GND

Exemple de code (Excemple On/Off)

	
		input.onButtonPressed(Button.A, function () {
		    if (true) {
		        pins.digitalWritePin(DigitalPin.P0, 1)
		        basic.pause(1000)
		    } else {
		        pins.digitalWritePin(DigitalPin.P0, 0)
		    }
		})
		pins.setPull(DigitalPin.P5, PinPullMode.PullDown)
	

Téléchargement d'un exemple de programme

microbit-KY-005.zip

Affectation des broches (Exemple de commande à distance)

Micro:Bit Émetteur
Pin 0 Signal
- +V
GND GND
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 deux autres exemples. Cependant, cet exemple est plus proche de celui du Raspberry Pi que de celui de l'Arduino.

Exemple de code (Exemple de commande à distance)

Deux bibliothèques supplémentaires sont nécessaires pour l'exemple de code suivant :

pxt-makerbit-ir-transmitter de 1010Technologies | publié sous la licence MIT

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

Vous devez d'abord ajouter ces bibliothèques à votre IDE avant d'utiliser le code.

Pour ce faire, allez dans Extensions dans votre IDE et utilisez les deux URL suivantes https://github.com/1010Technologies/pxt-makerbit-ir-transmitter.git et https://github.com/1010Technologies/pxt-makerbit-ir-receiver.git pour rechercher la bibliothèque et l'ajouter. Il convient de mentionner que, parfois, les bibliothèques n'apparaissent qu'après que vous ayez ajouté la deuxième bibliothèque.

	
		makerbit.onIrDatagram(function () {
		    if (true) {
		        basic.showIcon(IconNames.SmallHeart)
		    } else {
		        basic.showIcon(IconNames.Heart)
		    }
		})
		makerbit.connectIrSenderLed(AnalogPin.P0)
		makerbit.connectIrReceiver(DigitalPin.P1, IrProtocol.NEC)
		basic.forever(function () {
		    makerbit.sendIrDatagram("0x00FF02FD")
		    basic.pause(500)
		})
	

Téléchargement d'un exemple de programme

microbit-KY-005.zip

Ce module contient une diode électroluminescente qui émet une lumière infrarouge. La lumière infrarouge est invisible pour l'œil humain, mais elle est souvent utilisée dans de nombreuses applications pratiques, comme les télécommandes ou la détection d'objets. La diode fonctionne avec une tension de 1,1 V et un courant de 20 mA. En fonction de la tension d'entrée, il est important d'utiliser des résistances préalables pour protéger la diode électroluminescente et garantir un fonctionnement sans problème. Ces pré-résistances garantissent que la bonne quantité de courant circule dans la diode, ce qui permet de l'utiliser efficacement et en toute sécurité. Ce module est idéal pour les projets nécessitant une lumière infrarouge et offre une solution fiable et simple pour vos applications infrarouges.

Données techniques
Tension directe (Vf) 1,1 V
Courant direct (If) 20 mA
Longueur d'onde d'émission 940 nm (lumière non visible)

Les désignations (Vf et If) font référence à la tension directe et au courant direct de la diode électroluminescente.

Résistances de série:

Tension d'entrée Résistance en série
3,3V 120Ω
5V 220Ω

Affectation des broches

pour les plus avancés

Sur le circuit imprimé, il est possible de souder directement la résistance requise. L'emplacement pour souder la résistance est situé directement au-dessus des broches de connexion sur le circuit imprimé.


Lors du soudage de la résistance, l'affectation des bornes est modifiée comme suit :

Raspberry Pi Pico Émetteur
GPIO17 Signal
GND GND+Résistance
- GND

pour les débutants

Raspberry Pi Pico Émetteur
GPIO17 Signal
- GND+Résistance
GND GND

Exemple de code

A l'aide des deux modules capteurs KY-005 et KY-022 on peut construire un système avec télécommande infrarouge et récepteur infrarouge. Mais ici, nous n'utiliserons que l'émetteur avec un pico. Celui-ci fait alors office d'émetteur des signaux.

Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner ***Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) ***.

La bibliothèque suivante est utilisée pour l'exemple de code :

micropython-ir par Peter Hinch | publié sous la licence MIT.

Pour utiliser cette bibliothèque, vous devez télécharger le dossier ir_tx de la bibliothèque ci-dessus et le charger sur le Pico dans un dossier appelé lib (vous devez le créer si nécessaire).

Dans les systèmes de transmission infrarouge, il existe différents protocoles dans lesquels les données peuvent être envoyées. Dans l'exemple suivant, différents protocoles sont utilisés pour l'envoi. Documentation

Ensuite, vous pouvez maintenant copier le code ci-dessous dans votre IDE et cliquer sur Run.

# Charger des bibliothèques
from machine import Pin
from ir_tx.nec import NEC
from time import sleep

# Initialisation du transmetteur avec le protocole NEC sur GPIO26
nec = NEC(Pin(17, Pin.OUT, value = 0))

# Variables pour l'envoi des données
address = 0x00
data = 0x34

print("KY-005 Test de l'émetteur infrarouge")

while True:
    # Afficher les valeurs d'émission
    print("Maintenant, l'envoi est en cours: Adresse=", hex(address),", Commande=", hex(data))
    # Envoyer des données
    nec.transmit(address, data)
    # Incrémenter les valeurs d'émission
    data += 0x11
    # attendre une seconde
    sleep(1)