Donnez une Seconde Vie à vos Télécommandes : Créez des Objets Connectés DIY avec Arduino
Composants et Fournitures
| Arduino Nano R3 | ×1 |
| LED 5 mm Rouge (1 pour LED d'état, les autres pour identifier les sorties actives) | ×3 |
| LED 5 mm Verte | ×1 |
| LED 5 mm Jaune | ×1 |
| LED Bleue | ×2 |
| Plaque d'Essai (Breadboard) Taille Complète | ×1 |
| Fils de Raccordement (génériques) | ×1 |
| Interrupteur à Bascule (Off)-On (SPST) | ×1 |
| Alimentation Breadboard 5V/3.3V (SparkFun) (Optionnel si alimentation 5V externe ou via USB) | ×1 |
| Récepteur IR (générique) (ex: KY-022 37.9 kHz) | ×1 |
À Propos du Projet
Ce projet permet de réutiliser les télécommandes inutilisées d'anciens magnétoscopes, téléviseurs, lecteurs DVD, etc.

Vous pouvez les utiliser pour allumer des lampes, radiateurs, etc. via des relais, transistors de puissance ou tout dispositif pilotable par un signal 5V. Ici, la démo fait basculer 6 LED. L'idée est de fournir le code et le câblage pour que les signaux vers les LED puissent être redirigés vers n'importe quel dispositif imaginé par l'utilisateur.

Fonctionnement
Le système « apprend » 6 codes IR depuis n'importe quelle télécommande et les mémorise dans l'EEPROM de l'Arduino (Nano ou UNO). J'utilise les touches 1 à 6, mais n'importe quelles 6 touches fonctionnent. Toute autre touche non reconnue remet toutes les sorties à zéro. Chaque code (entier long sur 4 octets) est stocké en EEPROM (1024 octets disponibles), ce qui persiste après reset ou coupure d'alimentation.
Le montage tient sur une seule breadboard, sauf l'interrupteur. Pour améliorer la réception, j'ai incliné le récepteur IR à 45° et ajouté une petite boîte en carton avec une ouverture, ce qui permet une détection fiable à 1,5-2,5 mètres.

Programmation (Mode Apprentissage)
Basculez l'interrupteur sur « Learn » : une LED rouge s'allume. La LED 1 clignote, appuyez sur une touche de la télécommande. Dès la reconnaissance, la LED rouge clignote rapidement (vibration visuelle) et passe à la LED suivante. Après les 6 LED, la LED rouge clignote lentement (1 Hz) pour indiquer de repasser en mode « Run ».
Erreur fréquente : oublier de changer de touche sur la télécommande, ce qui programme deux sorties avec le même code. Au démarrage, le système détecte les doublons et fait clignoter les LED concernées pour suggérer une reprogrammation (mais ne l'impose pas, car on peut vouloir plusieurs touches pour une même action).
L'état, les erreurs, etc. sont indiqués par la fréquence de clignotement de la LED rouge d'état. Tout est aussi envoyé sur le moniteur série (plus facile à suivre que les codes de clignotement).
Addendum : Test avec Relais
Testé avec 5 relais en parallèle sur les LED 1-5, pilotant des lampes 230V. Le 6e devrait fonctionner aussi. Attention : les 4 premières sorties ferment sur 0V (logique inversée), j'ai utilisé une porte NAND CD4011 pour les inverser. Le relais unique fonctionne en logique positive (5V). Prudence avec le secteur : danger de mort !

Code Arduino
/* Toggle 6 LEDs using an IR remote to illustrate how to re-purpose surplus remotes...
Paul M Dunphy VE1DX March 2020 */
#include <IRremote.h>
#include <EEPROM.h>
long unsigned int intIRCode;
long unsigned int savedIRCodes[6];
long unsigned int dupeCheck[6];
const int Recv_Pin = 2;
const int PinOne = 12, PinTwo = 11, PinThree = 10, PinFour = 9, PinFive = 8, PinSix = 7;
const int switchPin = 4;
const int statusPin = 5;
const unsigned long int repeatKeyPress = 0xFFFFFFFF;
boolean learnMode;
boolean first_iteration;
int togglestate1=0, togglestate2=0, togglestate3=0, togglestate4=0, togglestate5=0, togglestate6=0;
int current_remote_code;
int remote_code_1, remote_code_2, remote_code_3, remote_code_4, remote_code_5, remote_code_6;
IRrecv irrecv(Recv_Pin);
decode_results results;
// Fonctions EEPROM write/read long (4 octets)
void EEPROMWritelong(int address, long value) { ... }
long EEPROMReadlong(long address) { ... }
int Flip_LED(int led, int toggle_state) { ... }
void Reset() { ... }
void guessType() { ... }
int learnCodeRead(int pinCode) { ... }
void Confirm() { ... }
void learn_Mode() { ... }
void run_Mode() { ... }
void setup() {
first_iteration = true;
// Vérification EEPROM vierge (0xFFFFFFFF) → pré-chargement codes Sony RM-YD104
// Configuration pins, lecture EEPROM, détection doublons, initialisation codes
}
void loop() {
learnMode = (digitalRead(switchPin) == HIGH);
if (learnMode) { first_iteration = true; Reset(); digitalWrite(statusPin, HIGH); learn_Mode(); Reset(); first_iteration = false; }
else { digitalWrite(statusPin, LOW); run_Mode(); first_iteration = false; }
}
Schéma de Câblage

Processus de fabrication
- Diodes Électroluminescentes (DEL) : De l'Inception aux Durées de Vie de 100 Ans
- Surveillance météo à distance avec Raspberry Pi 3 et PubNub
- Construire une télécommande universelle Raspberry Pi professionnelle avec LIRC
- Système de surveillance cardiaque à distance avec alertes AWS IoT
- Projet Arduino : Mélodie "Coffin Dance" — Construire et jouer le tube viral
- Transformer votre vieux téléphone en interrupteur à distance intelligent
- Light painting à LED unique : Créez des images dynamiques avec un système motorisé DIY
- Les 5 Critères Clés pour Sélectionner une Plateforme de Contrôle
- Élimination Sûre et Efficace de Machines Industrielles Obsolètes