Introduction

Dans ce projet, l’objectif est de contrôler l’allumage de plusieurs LEDs à l’aide d’une télécommande infrarouge. Les commandes envoyées par la télécommande sont reçues par un capteur infrarouge connecté à la carte Arduino, puis décodées afin d’identifier les actions à effectuer. En fonction des boutons pressés, l’Arduino active ou désactive les LEDs correspondantes.

Ce projet permet de découvrir le fonctionnement de la communication infrarouge, l’utilisation d’un récepteur IR et l’intégration d’une télécommande comme interface de commande à distance. Il constitue une application concrète pour la gestion d’éclairages et l’automatisation de dispositifs simples.

Schéma du projet

Programme du projet

Dans ce programme, l’appui sur les boutons 1, 2, 3 ou 4 de la télécommande infrarouge permet d’allumer les différentes LEDs correspondantes :

#include <IRremote.h>

const int capteurIR = 13;
IRrecv monCapteurIR(capteurIR);
decode_results messageRecu;

int pinLed[4] = {4, 9, 10, 12};
unsigned long Touche;
const long repetition = 0xFFFFFFFF;

void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(pinLed[i], OUTPUT);
    digitalWrite(pinLed[i], LOW);
  }
  monCapteurIR.enableIRIn();
}

void loop() {
  if (monCapteurIR.decode(&messageRecu)) {
    Touche = messageRecu.value;
    switch (Touche) {
      case 0xFF30CF:
        basculeLed(3);
        break;
      case 0xFF18E7:
        basculeLed(9);
        break;
      case 0xFF7A85:
        basculeLed(11);
        break;
      case 0xFF10EF:
        basculeLed(12);
        break;
      case repetition:
        break;
    }
    monCapteurIR.resume();
  }
  Touche = 0;
  delay(10);
}

void basculeLed(int broche) {
  if (digitalRead(broche) == HIGH) {
    digitalWrite(broche, LOW);
  } else {
    digitalWrite(broche, HIGH);
  }
}