télécommande

J'en pense que j'ai pas de bol :confused:

Normalement, il attend que tu appuies sur une touche. Les LEDs ne s'allument que si tu appuies sur une touche.
On va debuguer et ajouter des Serial.print un peu partout : Essaye ça

#include <IRremote.h>

int IR = 11; // Récepteur IR en broche 11
const byte LED3  = 3; // led rouge en broche 3
const byte LED4  = 4; // led verte en broche 4
IRrecv RCEP(IR);
decode_results RIR; //

/*
   On définit 4 états :
   état 0 : attente d'une touche
   état 1 : LED verte allumée, rouge éteinte, durée 2 sec puis retour à 0
   état 2 : LED rouge allumée, verte étaeinte, durée 3 sec  puis retour à 0
   état 3 : on éteint les LED, retour à état 0
*/
int etat = 0;
unsigned long dureeEtat1 = 2000;
unsigned long dureeEtat2 = 3000;
unsigned long chrono1 = 0;
unsigned long chrono2 = 0;

void setup() {
  Serial.begin(115200);
  RCEP.enableIRIn(); // Commencement de la réception
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  digitalWrite (LED3, LOW);
  digitalWrite (LED4, LOW);
}

void loop() {
Serial.print("Etat : ");
Serial.println(etat);

  switch (etat) {
    case 0:
      if (RCEP.decode(&RIR)) // si il y a une réception sur le capteur
      {
        unsigned long valeur = RIR.value;
Serial.print("Valeur: ");
Serial.println(valeur);
        if (valeur == 0xfb9 || valeur == 0x40bf50af) {
          etat = 1;
          digitalWrite(LED3, HIGH);
          chrono1 = millis();
        } else
        if (valeur == 0x40bf906f || valeur == 0x7ba) {
          etat = 2;
          digitalWrite(LED4, HIGH);
          chrono2 = millis();
        } else
        if (valeur == 0x40bf00ff) etat = 3;
      } else Serial.println ("Touche non reconnue");
      break;
    case 1:
      if (RCEP.decode(&RIR)) // si il y a une réception sur le capteur
      {
        unsigned long valeur = RIR.value;
Serial.print("Valeur: ");
Serial.println(valeur);
        if (valeur == 0x40bf00ff) etat = 3;
      }
      else if (millis() - chrono1 > dureeEtat1) {
        digitalWrite(LED3, LOW); // Les LED s'éteignent
        digitalWrite(LED4, LOW);
        etat = 0;
      }
      break;
    case 2:
      if (RCEP.decode(&RIR)) // si il y a une réception sur le capteur
      {
        unsigned long valeur = RIR.value;
Serial.print("Valeur: ");
Serial.println(valeur);
        if (valeur == 0x40bf00ff) etat = 3;
      }
      else if (millis() - chrono2 > dureeEtat2) {
        digitalWrite(LED3, LOW); // Les LED s'éteignent
        digitalWrite(LED4, LOW);
        etat = 0;
      }
      break;
    case 3: // Interruption des commandes 1 et 2 uniquement
Serial.println("Extinection LEDs ");
      digitalWrite(LED3, LOW); // Les LED s'éteignent
      digitalWrite(LED4, LOW);
      etat = 0;
      break;
    default:
      Serial.println("Probleme : etat non reconnu.");
      etat = 0;
      break;
  }
  RCEP.resume(); // Réception de la prochaine valeur
}