Décodage des télécommandes Black ou White avec Arduino

Décodage des télécommandes Black ou White avec Arduino

Dans ce tutoriel, nous apprendrons à décoder les touches des télécommandes infrarouges noir et blanc en utilisant un Arduino et un récepteur IR. À la fin de ce projet, vous serez en mesure de déterminer quelle touche a été pressée sur la télécommande et d'afficher cette information sur le moniteur série. Cela peut être utile pour contrôler des appareils avec n'importe quelle télécommande que vous pourriez avoir, comme des téléviseurs ou d'autres appareils (dans la vidéo à 01:00).

Décodeur-IR-télécommande-principal

Nous allons utiliser une configuration simple qui comprend un Arduino, un module de récepteur infrarouge et le code nécessaire pour décoder les signaux. Le récepteur infrarouge capturera les signaux de la télécommande, et l'Arduino interprétera ces signaux pour déterminer quel bouton a été pressé. Ce projet est simple et peut être adapté à diverses télécommandes.

Deconding-IR-remote-main-2

Matériel expliqué

Les composants principaux de ce projet incluent la carte Arduino et un module récepteur IR, généralement désigné sous le nom de VS1838B. L'Arduino servira de contrôleur principal, exécutant le code qui traite les signaux reçus de la télécommande. Le récepteur IR capture les signaux infrarouges émis par la télécommande et les convertit en un format que l'Arduino peut comprendre.

Récepteurs à distance IR VS1838B broches
Récepteur IR à distance broches VS1838B

Le VS1838B fonctionne sur une plage de tension de 2,7V à 5,5V, ce qui le rend compatible avec la plupart des cartes Arduino. Il peut détecter des signaux à une distance de 10 à 15 mètres, selon les conditions. Le récepteur infrarouge émet un signal numérique qui indique quel bouton de la télécommande a été enfoncé, permettant à l'Arduino de réagir en conséquence.

Détails de la fiche technique

Fabricant VS1838B
Numéro de pièce VS1838B
Tension logique/IO 2,7-5,5 V
Tension d'alimentation 5 V
Courant de sortie (par canal) 1,5 mA
Distance de réception 10-15 m
Fréquence d'entrée 38 kHz
Courant de repos 0,8 mA (typ.)
Angle de fonctionnement 70 degrés
Paquet TO-220

  • Assurez un approvisionnement en tension adéquat pour éviter d'endommager le récepteur IR.
  • Gardez le module récepteur à l'abri de la lumière directe du soleil ou de sources infrarouges puissantes.
  • Utilisez des résistances de tirage si nécessaire pour stabiliser les lectures de signal.
  • Les connexions électriques doivent être sûres pour prévenir les signaux intermittents.
  • Testez différentes télécommandes pour voir comment elles fonctionnent avec la configuration.
  • Deconding-IR-remote-main-1

Instructions de câblage

Pour connecter le récepteur IR à l'Arduino, commencez par connecter la broche VCC du récepteur IR à la broche 5V de l'Arduino. Ensuite, connectez la broche GND du récepteur à l'une des broches GND de l'Arduino. Enfin, connectez la broche de signal (souvent étiquetée comme SIG ou OUT) du récepteur IR à la broche numérique 11 de l'Arduino.

Assurez-vous que les connexions sont sécurisées, car des connexions lâches peuvent conduire à des lectures incohérentes. Si vous utilisez une version PCB du récepteur IR ou un module nu, le câblage reste le même ; veillez simplement à identifier correctement les broches selon l'étiquetage du module (dans la vidéo à 03:15).

Installer la bibliothèque IRremote

Lancez l'IDE Arduino.Arduino.ccCliquez sur l'icône de la bibliothèque à gauche et recherchezIRremoteet cliquez sur "Installer" pour l'installer.

#include <IRremote.h>

Exemples de code et guide étape par étape

int RECV_PIN = 11;
const char type ='W'; // W for white, B for black
const boolean PCB = 0; // 1 for PCB, 0 for bare module
IRrecv irrecv(RECV_PIN);

Dans cet extrait, nous définissons le numéro de broche pour le récepteur IR avecRECV_PINdéfinir à 11. Nous spécifions également le type de télécommande utilisé avec letypevariable, où 'W' indique une télécommande blanche et 'B' indique une télécommande noire. LePCBla variable distingue entre l'utilisation d'une version PCB du récepteur ou d'un module nu.

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

Dans lesetup()fonction, nous initialisons la communication série à 9600 bauds et démarrons le récepteur IR. Cela est crucial pour surveiller la sortie sur le moniteur série, nous permettant de voir quelle touche a été pressée.

void loop() {
  if (irrecv.decode(&results)) {
    robojaxValidateCode(results.value); // Validate the received code
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

Le principalloop()vérifie si le récepteur IR a décodé un signal. Si c'est le cas, il appelle lerobojaxValidateCodefonction pour traiter la valeur reçue et ensuite reprendre l'écoute du prochain signal. Ledelay(100)assure que la boucle ne s'exécute pas trop rapidement, ce qui peut aider au traitement du signal.

Démonstration / À quoi s'attendre

Une fois que tout est configuré et que le code est téléchargé, ouvrez le moniteur série pour voir la sortie. Lorsque vous appuyez sur une touche de la télécommande, vous devriez voir le nom de la touche correspondante affiché sur le moniteur. Si la touche n'est pas reconnue, cela affichera "Touche inconnue." Assurez-vous d'appuyer fermement sur les touches, car des connexions lâches peuvent provoquer des lectures erronées (dans la vidéo à 05:40).

Si vous appuyez sur une touche en continu, la sortie peut afficher des valeurs répétées ou des codes hexadécimaux. Ce comportement est normal, et vous pouvez modifier le code pour filtrer ces signaux continus si vous le souhaitez. De plus, vous pouvez ajuster le code pour effectuer des actions basées sur des pressions de touches spécifiques, comme allumer des lumières ou contrôler d'autres appareils.

Horodatages vidéo

  • 00:00 Début
  • 00:56 Le matériel est expliqué
  • 04:26 Câblage Expliqué
  • 05:20 Le code est expliqué
  • 12:27 Démonstration du décodage de code

Images

Décodage de n'importe quelle télécommande noire ou télécommande blanche avec Arduino
Décodage de n'importe quelle télécommande noire ou télécommande blanche avec Arduino
Broches du récepteur IR VS1838B
Broches du récepteur IR VS1838B
Deconding-IR-remote-main
Deconding-IR-remote-main
Deconding-IR-remote-main-1
Deconding-IR-remote-main-1
Deconding-IR-remote-main-2
Deconding-IR-remote-main-2
137-Source code for decoding infrared remote controllers using Arduino
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Aucun fichier disponible.