Le module KY-022 est un récepteur infrarouge prêt à brancher : il écoute le signal que les télécommandes envoient et le rend en clair sur une broche numérique, que l’Arduino lit comme un simple appui de bouton. C’est le composant des projets pilotés à la télécommande : allumer un relais, changer un canal, faire bouger un robot.
Il ne se contente pas de détecter de la lumière infrarouge : le circuit 1838 qui équipe la carte filtre la porteuse à 38 kHz, celle qu’utilisent la quasi-totalité des télécommandes de télévision, de climatiseur et de chaîne hi-fi. Le bruit de fond lumineux est écarté, seul le signal du boîtier est transmis.
À quoi sert un récepteur infrarouge ?
Une télécommande ne projette pas un faisceau continu. Elle allume et éteint sa LED infrarouge environ 38 000 fois par seconde, et découpe ce train d’impulsions pour coder chaque touche. Le module KY-022 contient, dans un seul boîtier métallique, la photodiode qui capte ce rayonnement invisible, un amplificateur, le filtre à 38 kHz et le démodulateur qui retire la porteuse. Ce qui sort de la broche S, c’est directement la suite de bits de la touche pressée.
- Pilotage d’un relais — allumer une lampe ou un appareil depuis sa télécommande.
- Menu sur afficheur — se déplacer dans les écrans avec les flèches du boîtier.
- Robot télécommandé — avancer, reculer, tourner avec les touches d’une télécommande récupérée.
- Lecture d’un code — identifier le protocole et les numéros de touches d’une télécommande inconnue.
- Comptage à distance — détecter le passage d’une télécommande devant un capteur, sans contact.
Caractéristiques techniques
| Modèle | KY-022 (également vendu sous la référence HW-490) |
|---|---|
| Circuit récepteur | 1838 série — sérigraphié 1838, TL1838 ou VS1838B selon les lots, même composant |
| Alimentation | 2,7 à 5,5 V continu (5 V en pratique) |
| Consommation | 0,4 à 1,5 mA |
| Fréquence de la porteuse | 38 kHz |
| Longueur d’onde reçue | 940 nm (invisible à l’œil) |
| Sortie | Numérique TTL, au repos au niveau haut, tirée au niveau bas pendant chaque salve |
| Portée | Jusqu’à 18 m en ligne directe, dans un cône de plus ou moins 45° |
| Tolérance à la lumière ambiante | Jusqu’à environ 500 lux |
| Composants sur la carte | Récepteur 1838, LED témoin, résistance de 1 kΩ |
| Connecteur | Barrette mâle 3 broches au pas de 2,54 mm |
| Dimensions | Environ 24 × 16 mm, deux trous de fixation |
Brochage : la sérigraphie fait foi
Trois broches seulement, mais leur ordre n’est pas normalisé d’un fabricant à l’autre. C’est la sérigraphie de la carte qu’il faut suivre, pas la position de gauche à droite :
S | Signal — la sortie démodulée, à relier à une entrée numérique de la carte |
|---|---|
| Milieu (non marqué) | Alimentation VCC, de 2,7 à 5,5 V |
− | Masse GND |
La broche du milieu est toujours l’alimentation. En revanche les deux broches extérieures S et − sont imprimées dans un ordre ou dans l’autre selon les lots : si un montage correctement alimenté ne renvoie rien, ce sont ces deux fils qu’il faut échanger.
Mini-projet : lire et décoder une télécommande
Le but : brancher le module, appuyer sur une touche de télécommande, et lire dans le moniteur série le protocole, l’adresse et le numéro de la touche.
Le matériel
- une carte Arduino Uno R3 et son câble USB ;
- le module KY-022 ;
- trois fils de prototypage femelle-femelle, le module portant une barrette mâle ;
- une télécommande infrarouge, télécommande de télévision ou de chaîne hi-fi.
Le câblage
Module S | Arduino D2 |
|---|---|
| Module milieu | Arduino 5V |
Module − | Arduino GND |
Le module est prévu pour être installé sur une plaque d’essai, ou relié directement par les fils : inutile de souder quoi que ce soit.
Le programme
À copier dans l’IDE Arduino, puis à téléverser sur la carte :
/*
* Lecture d'une telecommande infrarouge - module KY-022
* Carte : Arduino Uno R3
* Montage : broche S du module sur D2
* Bibliotheque : IRremote, a installer depuis le gestionnaire
* de bibliotheques de l'IDE Arduino
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "IRremote.hpp"
const byte PIN_IR = 2; // broche S du module KY-022
void setup() {
Serial.begin(9600);
// Le module sort un signal deja demodule : rien a configurer de plus
IrReceiver.begin(PIN_IR, ENABLE_LED_FEEDBACK);
Serial.println("Pointez la telecommande vers le module...");
}
void loop() {
if (IrReceiver.decode()) {
// Le protocole est un numero : NEC, SONY, RC5, UNKNOWN...
Serial.print("Protocole : ");
Serial.println(IrReceiver.decodedIRData.protocol);
if (IrReceiver.decodedIRData.protocol == UNKNOWN) {
Serial.println("Signal non reconnu : protocole absent de la bibliotheque");
} else {
Serial.print("Adresse : ");
Serial.println(IrReceiver.decodedIRData.address);
Serial.print("Touche : ");
Serial.println(IrReceiver.decodedIRData.command);
}
IrReceiver.resume(); // on se remet en ecoute du signal suivant
}
}Ce que vous verrez
Ouvrez le moniteur série à 9600 bauds, visez le module avec la télécommande et appuyez : une ligne s’affiche à chaque touche, avec le numéro du protocole, l’adresse du boîtier et le numéro de la touche. Notez ces numéros, ils deviennent les conditions de votre programme — c’est à partir d’eux que l’on commande un relais ou un menu.
La LED de la carte s’allume brièvement à chaque réception : c’est le contrôle le plus rapide, il fonctionne même sans moniteur série. Le module restant en écoute permanente, aucune boucle d’attente n’est nécessaire dans le programme.
Questions fréquentes
Le moniteur série reste vide quand j’appuie
Dans l’ordre : vérifier que l’alimentation est bien sur la broche du milieu et non sur une broche extérieure, puis échanger S et − si rien ne change. Ensuite, contrôler la télécommande elle-même : visée devant l’objectif d’un appareil photo ou d’un téléphone, sa LED doit apparaître en violet pâle sur l’écran. Enfin, éloigner le montage du plein soleil et des lampes puissantes, qui saturent le récepteur.
Peut-on l’alimenter en 3,3 V ?
Oui, le circuit accepte de 2,7 à 5,5 V. Alimenté en 3,3 V, il délivre une sortie dans la même plage, directement lisible par une carte 3,3 V comme l’ESP32 ou la Raspberry Pi.
Quelle différence avec un capteur d’obstacle infrarouge ?
Les deux utilisent l’infrarouge, mais pas pour la même chose. Le KY-022 est un récepteur pur : il écoute un signal modulé à 38 kHz venu d’ailleurs, une télécommande par exemple. Le capteur d’obstacle infrarouge émet lui-même son faisceau et mesure ce qui en revient, ce qui lui permet de détecter un objet proche sans aucune télécommande.
Un obstacle entre la télécommande et le module suffit-il à couper la réception ?
Presque toujours, oui : l’infrarouge ne traverse ni un mur, ni une main, ni une vitre teintée. Il faut viser, comme avec n’importe quelle télécommande. La portée annoncée de 18 mètres suppose un alignement dégagé, et se réduit nettement en intérieur avec des meubles ou une lampe proche.
À combiner avec
Une télécommande infrarouge avec son récepteur permet de partir d’un boîtier dont les codes sont connus, plutôt que d’une télécommande de téléviseur dont il faut d’abord relever les numéros de touches.
Pour la lecture du signal, une carte Uno R3 avec son câble USB suffit. Le module se relie directement, ou par l’intermédiaire d’une plaque d’essai 830 lorsque le montage comporte d’autres composants, une barrette de fils femelle-femelle assurant la liaison entre la carte et les modules.








