problème projet kit led RC

Bonjour,

Tout d'abord j'explique les grande ligne de mon projet:
Je fais un kit led pour ma voiture RC, je veux commander l'éclairage via une télécommande IR.
j'ai prévu 2 led RGB pour les phares et 4 led pour une barre de toit
j'ai fais un programme pour le capteur IR et repérer les codes des touches de la télécommande via le moniteur série:

#include <IRremote.h> // prend en compte la librairie nécessaire à la gestion télécommande infra rouge
int RECV_PIN = 13; // le récepteur infrarouge est câblé en broche 11
IRrecv irrecv(RECV_PIN); // réception de l'information donnée par la télécommande
decode_results results; // Met dans "results" le résultat de l'info donnée par la télécommande
void setup()
{
Serial.begin(9600); // ligne nécessaire pour voir le code sur le moniteur
irrecv.enableIRIn(); // Initialise le récepteur
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX); // affiche la valeur de la touche actionnée en hexadécimal
Serial.println(results.value, DEC); // affiche la valeur de la touche actionnée en décimal
irrecv.resume(); // Recoit la valeur suivante
}
}

J'ai fais un 2èmè programme pour les tester les led:

/* Couleurs (format RGB) */
const byte COLOR_BLACK = 0b000;
const byte COLOR_GREEN = 0b010;
const byte COLOR_BLUE = 0b001;
const byte COLOR_MAGENTA = 0b101;
const byte COLOR_YELLOW = 0b110;
const byte COLOR_WHITE = 0b111;

/* Broches */
const byte PIN_LED_R1 = 2;
const byte PIN_LED_G1 = 3;
const byte PIN_LED_B1 = 4;
const byte PIN_LED_R2 = 5;
const byte PIN_LED_G2 = 6;
const byte PIN_LED_B2 = 7;
const byte PIN_LED_W1 = 8;
const byte PIN_LED_W2 = 9;
const byte PIN_LED_W3 = 10;
const byte PIN_LED_W4 = 11;

// Fonction setup(), appelée au démarrage de la carte Arduino
void setup() {

  // Initialise les broches
  pinMode(PIN_LED_R1, OUTPUT);
  pinMode(PIN_LED_G1, OUTPUT);
  pinMode(PIN_LED_B1, OUTPUT);
  pinMode(PIN_LED_R2, OUTPUT);
  pinMode(PIN_LED_G2, OUTPUT);
  pinMode(PIN_LED_B2, OUTPUT);
  displayColor(COLOR_BLACK);
  pinMode(PIN_LED_W1, OUTPUT);
  pinMode(PIN_LED_W2, OUTPUT);
  pinMode(PIN_LED_W3, OUTPUT);
  pinMode(PIN_LED_W4, OUTPUT);
}

// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop() {
  
  /* Code de démonstration RGB */
  
  displayColor(COLOR_GREEN);
  delay(5000);
  
  displayColor(COLOR_BLUE);
  delay(5000);
  
  displayColor(COLOR_MAGENTA);
  delay(5000);
  
  displayColor(COLOR_YELLOW);
  delay(5000);
  
  displayColor(COLOR_WHITE);
  delay(5000);
  
  displayColor(COLOR_BLACK);
  delay(5000);
  
/* Code de démonstration 4 led blanche */
  digitalWrite(PIN_LED_W1, HIGH);
  digitalWrite(PIN_LED_W2, HIGH);
  digitalWrite(PIN_LED_W3, HIGH);
  digitalWrite(PIN_LED_W4, HIGH);
  delay(1000);
  digitalWrite(PIN_LED_W1, LOW);
  digitalWrite(PIN_LED_W2, LOW);
  digitalWrite(PIN_LED_W3, LOW);
  digitalWrite(PIN_LED_W4, LOW);
  delay(1000);
  
}

/** Affiche une couleur */
void displayColor(byte color) {

  // Assigne l'état des broches
  // Version cathode commune
  digitalWrite(PIN_LED_R1, bitRead(color, 2));
  digitalWrite(PIN_LED_G1, bitRead(color, 1));
  digitalWrite(PIN_LED_B1, bitRead(color, 0));
  digitalWrite(PIN_LED_R2, bitRead(color, 2));
  digitalWrite(PIN_LED_G2, bitRead(color, 1));
  digitalWrite(PIN_LED_B2, bitRead(color, 0));
}

maintenant j'essais de mixer les deux programmes en voulant que chaque touche de la télécommande serve de bouton ON/OFF.
j'ai essayé comme sa:

#include <IRremote.h>

int RECV_PIN = 13;

IRrecv irrecv(RECV_PIN);

decode_results results;

/* Couleurs (format RGB) */
const byte COLOR_BLACK = 0b000;
const byte COLOR_GREEN = 0b010;
const byte COLOR_BLUE = 0b001;
const byte COLOR_MAGENTA = 0b101;
const byte COLOR_YELLOW = 0b110;
const byte COLOR_WHITE = 0b111;

/* Broches */
const byte PIN_LED_R1 = 2;
const byte PIN_LED_G1 = 3;
const byte PIN_LED_B1 = 4;
const byte PIN_LED_R2 = 5;
const byte PIN_LED_G2 = 6;
const byte PIN_LED_B2 = 7;
const byte PIN_LED_W1 = 8;
const byte PIN_LED_W2 = 9;
const byte PIN_LED_W3 = 10;
const byte PIN_LED_W4 = 11;

// Fonction setup(), appelée au démarrage de la carte Arduino
void setup() {

  // Initialise les broches
  pinMode(PIN_LED_R1, OUTPUT);
  pinMode(PIN_LED_G1, OUTPUT);
  pinMode(PIN_LED_B1, OUTPUT);
  pinMode(PIN_LED_R2, OUTPUT);
  pinMode(PIN_LED_G2, OUTPUT);
  pinMode(PIN_LED_B2, OUTPUT);
  displayColor(COLOR_BLACK);
  pinMode(PIN_LED_W1, OUTPUT);
  pinMode(PIN_LED_W2, OUTPUT);
  pinMode(PIN_LED_W3, OUTPUT);
  pinMode(PIN_LED_W4, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // allumer récepteur IR
}

// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop() {

  if (irrecv.decode(&results)) {
     switch(results.value)
     {
     case 0xFFA25D:digitalWrite(PIN_LED_W1,HIGH);HIGH=!HIGH;break;
                   digitalWrite(PIN_LED_W2,HIGH);HIGH=!HIGH;break;
                   digitalWrite(PIN_LED_W3,HIGH);HIGH=!HIGH;break;
                   digitalWrite(PIN_LED_W4,HIGH);HIGH=!HIGH;break; //touche 1 télécommande pour rampe led
     case 0xFF629D:displayColor(COLOR_WHITE);HIGH=!HIGH;break; //touche 2 télécommande pour phare white
     case 0xFFE21D:displayColor(COLOR_YELLOW);HIGH=!HIGH;break; //touche 3 télécommande pour phare yellow
     case 0xFF22DD:displayColor(COLOR_MAGENTA);HIGH=!HIGH;break; //touche 4 télécommande pour phare magenta
     case 0xFF02FD:displayColor(COLOR_BLUE);HIGH=!HIGH;break; //touche 5 télécommande pour phare blue
     case 0xFFC23D:displayColor(COLOR_GREEN);HIGH=!HIGH;break; //touche 6 télécommande pour phare green          
     }
    
     irrecv.resume(); // Recoit la prochaine valeur
  }

/** Affiche une couleur */
void displayColor(byte color) {

  // Assigne l'état des broches
  // Version cathode commune
  digitalWrite(PIN_LED_R1, bitRead(color, 2));
  digitalWrite(PIN_LED_G1, bitRead(color, 1));
  digitalWrite(PIN_LED_B1, bitRead(color, 0));
  digitalWrite(PIN_LED_R2, bitRead(color, 2));
  digitalWrite(PIN_LED_G2, bitRead(color, 1));
  digitalWrite(PIN_LED_B2, bitRead(color, 0));
}

quand je compile le code sa me met:
Plusieurs bibliothèque trouvées pour "IRremote.h"
Utilisé : C:\Users\simon\Documents\Arduino\libraries\IRremote
Non utilisé : C:\Users\simon\Documents\Arduino\libraries\arduino_816501
exit status 1
'displayColor' was not declared in this scope

Il manque une accolade fermante à la fin de la loop, juste avant la ligne :
/** Affiche une couleur */

Tu devrais faire le ménage des bibliothèques installées, il te dit aussi qu'il trouve deux qui ont le même contenu (IRremote)...

J'ai ajouté l'accolade et supprimé une bibliothèque

#include <IRremote.h>

int RECV_PIN = 13;

IRrecv irrecv(RECV_PIN);

decode_results results;

/* Couleurs (format RGB) */
const byte COLOR_BLACK = 0b000;
const byte COLOR_GREEN = 0b010;
const byte COLOR_BLUE = 0b001;
const byte COLOR_MAGENTA = 0b101;
const byte COLOR_YELLOW = 0b110;
const byte COLOR_WHITE = 0b111;

/* Broches */
const byte PIN_LED_R1 = 2;
const byte PIN_LED_G1 = 3;
const byte PIN_LED_B1 = 4;
const byte PIN_LED_R2 = 5;
const byte PIN_LED_G2 = 6;
const byte PIN_LED_B2 = 7;
const byte PIN_LED_W1 = 8;
const byte PIN_LED_W2 = 9;
const byte PIN_LED_W3 = 10;
const byte PIN_LED_W4 = 11;

// Fonction setup(), appelée au démarrage de la carte Arduino
void setup() {

  // Initialise les broches
  pinMode(PIN_LED_R1, OUTPUT);
  pinMode(PIN_LED_G1, OUTPUT);
  pinMode(PIN_LED_B1, OUTPUT);
  pinMode(PIN_LED_R2, OUTPUT);
  pinMode(PIN_LED_G2, OUTPUT);
  pinMode(PIN_LED_B2, OUTPUT);
  displayColor(COLOR_BLACK);
  pinMode(PIN_LED_W1, OUTPUT);
  pinMode(PIN_LED_W2, OUTPUT);
  pinMode(PIN_LED_W3, OUTPUT);
  pinMode(PIN_LED_W4, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // allumer récepteur IR
}

// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop() {

  if (irrecv.decode(&results)) {
     switch(results.value)
     {
     case 0xFFA25D:digitalWrite(PIN_LED_W1, HIGH);HIGH=!HIGH;break;
                   digitalWrite(PIN_LED_W2, HIGH);HIGH=!HIGH;break;
                   digitalWrite(PIN_LED_W3, HIGH);HIGH=!HIGH;break;
                   digitalWrite(PIN_LED_W4, HIGH);HIGH=!HIGH;break; //touche 1 télécommande pour rampe led
     case 0xFF629D:displayColor(COLOR_WHITE);HIGH=!HIGH;break; //touche 2 télécommande pour phare white
     case 0xFFE21D:displayColor(COLOR_YELLOW);HIGH=!HIGH;break; //touche 3 télécommande pour phare yellow
     case 0xFF22DD:displayColor(COLOR_MAGENTA);HIGH=!HIGH;break; //touche 4 télécommande pour phare magenta
     case 0xFF02FD:displayColor(COLOR_BLUE);HIGH=!HIGH;break; //touche 5 télécommande pour phare blue
     case 0xFFC23D:displayColor(COLOR_GREEN);HIGH=!HIGH;break; //touche 6 télécommande pour phare green          
     }
    
     irrecv.resume(); // Recoit la prochaine valeur
  }
 } 

/** Affiche une couleur */
void displayColor(byte color) {

  // Assigne l'état des broches
  // Version cathode commune
  digitalWrite(PIN_LED_R1, bitRead(color, 2));
  digitalWrite(PIN_LED_G1, bitRead(color, 1));
  digitalWrite(PIN_LED_B1, bitRead(color, 0));
  digitalWrite(PIN_LED_R2, bitRead(color, 2));
  digitalWrite(PIN_LED_G2, bitRead(color, 1));
  digitalWrite(PIN_LED_B2, bitRead(color, 0));
}

Je dois avoir un soucis dans l'écriture du code car sa me dit:

Arduino : 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Carte : "Arduino/Genuino Uno"

C:\Users\simon\Documents\Arduino\test_pilotage_rampe_led\test_pilotage_rampe_led.ino: In function 'void loop()':

test_pilotage_rampe_led:55:55: error: lvalue required as left operand of assignment

case 0xFFA25D:digitalWrite(PIN_LED_W1, HIGH);HIGH=!HIGH;break;

^

test_pilotage_rampe_led:56:55: error: lvalue required as left operand of assignment

digitalWrite(PIN_LED_W2, HIGH);HIGH=!HIGH;break;

^

test_pilotage_rampe_led:57:55: error: lvalue required as left operand of assignment

digitalWrite(PIN_LED_W3, HIGH);HIGH=!HIGH;break;

^

test_pilotage_rampe_led:58:55: error: lvalue required as left operand of assignment

digitalWrite(PIN_LED_W4, HIGH);HIGH=!HIGH;break; //touche 1 télécommande pour rampe led

^

test_pilotage_rampe_led:59:50: error: lvalue required as left operand of assignment

case 0xFF629D:displayColor(COLOR_WHITE);HIGH=!HIGH;break; //touche 2 télécommande pour phare white

^

test_pilotage_rampe_led:60:51: error: lvalue required as left operand of assignment

case 0xFFE21D:displayColor(COLOR_YELLOW);HIGH=!HIGH;break; //touche 3 télécommande pour phare yellow

^

test_pilotage_rampe_led:61:52: error: lvalue required as left operand of assignment

case 0xFF22DD:displayColor(COLOR_MAGENTA);HIGH=!HIGH;break; //touche 4 télécommande pour phare magenta

^

test_pilotage_rampe_led:62:49: error: lvalue required as left operand of assignment

case 0xFF02FD:displayColor(COLOR_BLUE);HIGH=!HIGH;break; //touche 5 télécommande pour phare blue

^

test_pilotage_rampe_led:63:50: error: lvalue required as left operand of assignment

case 0xFFC23D:displayColor(COLOR_GREEN);HIGH=!HIGH;break; //touche 6 télécommande pour phare green

^

exit status 1
lvalue required as left operand of assignment

Ton problème vient de ces lignes :

digitalWrite(PIN_LED_W1, HIGH);HIGH=!HIGH;
...
displayColor(COLOR_WHITE);HIGH=!HIGH;

Je ne sais pas ce que tu veux faire là, mais tu ne peux pas le faire comme ça. HIGH c'est un mot-clé, une constante qui vaut 1 en fait, donc quand tu fais ton digitalWrite, tu mets à 1 la sortie concernée, c'est à dire que tu allumes la led (a priori, ça peut dépendre de la connexion). Mais ensuite HIGH=!HIGH, ça n'a aucun sens.

Si tu veux faire basculer la led de éteinte à allumée et vice-versa, il faut faire :

digitalWrite(PIN_LED_W1, !digitalRead(PIN_LED_W1));

Bonjour,

J'ai modifier un peu le programme,

#include <IRremote.h>

int RECV_PIN = 13;

IRrecv irrecv(RECV_PIN);

decode_results results;


/* Broches */
const byte PIN_LED_R1 = 3;
const byte PIN_LED_G1 = 5;
const byte PIN_LED_B1 = 6;
const byte PIN_LED_R2 = 9;
const byte PIN_LED_G2 = 10;
const byte PIN_LED_B2 = 11;
const byte PIN_LED_W1 = 2;
const byte PIN_LED_W2 = 4;
const byte PIN_LED_W3 = 7;
const byte PIN_LED_W4 = 8;

// Fonction setup(), appelée au démarrage de la carte Arduino
void setup() {

  // Initialise les broches
  pinMode(PIN_LED_R1, OUTPUT);
  pinMode(PIN_LED_G1, OUTPUT);
  pinMode(PIN_LED_B1, OUTPUT);
  pinMode(PIN_LED_R2, OUTPUT);
  pinMode(PIN_LED_G2, OUTPUT);
  pinMode(PIN_LED_B2, OUTPUT);
  pinMode(PIN_LED_W1, OUTPUT);
  pinMode(PIN_LED_W2, OUTPUT);
  pinMode(PIN_LED_W3, OUTPUT);
  pinMode(PIN_LED_W4, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // allumer récepteur IR
}

// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop() {

  if (irrecv.decode(&results)) {
     Serial.println(results.value, HEX); // affiche la valeur de la touche actionnée en hexadécimal
     switch(results.value)
     {
     case 0xFFA25D:digitalWrite(PIN_LED_W1, !digitalRead(PIN_LED_W1));
                   digitalWrite(PIN_LED_W2, !digitalRead(PIN_LED_W2));
                   digitalWrite(PIN_LED_W3, !digitalRead(PIN_LED_W3));
                   digitalWrite(PIN_LED_W4, !digitalRead(PIN_LED_W4)); //touche 1 télécommande pour rampe led
                   
     case 0xFF629D:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
                   digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
                   digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
                   digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
                   digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
                   digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 2 télécommande pour phare white
     case 0xFFE21D:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
                   digitalWrite(PIN_LED_G1, !LOW);
                   digitalWrite(PIN_LED_B1, !LOW);
                   digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_G2));
                   digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_R2));
                   digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 3 télécommande pour phare yellow
     case 0xFF22DD:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
                   digitalWrite(PIN_LED_G1, !LOW);
                   digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
                   digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
                   digitalWrite(PIN_LED_G2, !LOW);
                   digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 4 télécommande pour phare magenta
     case 0xFF02FD:digitalWrite(PIN_LED_R1, !LOW);
                   digitalWrite(PIN_LED_G1, !LOW);
                   digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
                   digitalWrite(PIN_LED_R2, !LOW);
                   digitalWrite(PIN_LED_G2, !LOW);
                   digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 5 télécommande pour phare blue
     case 0xFFC23D:digitalWrite(PIN_LED_R1, !LOW);
                   digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
                   digitalWrite(PIN_LED_B1, !LOW);
                   digitalWrite(PIN_LED_R2, !LOW);
                   digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
                   digitalWrite(PIN_LED_B2, !LOW); //touche 6 télécommande pour phare green 
     }
    
     irrecv.resume(); // Recoit la prochaine valeur
  }
 }

Déja, il y a 2 choses que je ne comprend pas,
lorsque j' appuis sur la touche 1, sa allume bien les 4 led blanches mais sa allume aussi les 2 led RGB en rose alors que le cablage semble correct.
Il y a aussi la carte arduino qui semble se réinitialiser au bout d'un certain temps sans que je comprenne pourquoi.

Bonjour,

Il manque les 'break' à la fin de chaque case.

merci bien :slight_smile: j'ai ajouté "break" et pour les 4 led blanches sa va mieux sa n'allume plus les 2 RGB
J'avais égualement une érreur dans le code pour la couleur jaune des RGB

#include <IRremote.h>

int RECV_PIN = 13;

IRrecv irrecv(RECV_PIN);

decode_results results;


/* Broches */
const byte PIN_LED_R1 = 3;
const byte PIN_LED_G1 = 5;
const byte PIN_LED_B1 = 6;
const byte PIN_LED_R2 = 9;
const byte PIN_LED_G2 = 10;
const byte PIN_LED_B2 = 11;
const byte PIN_LED_W1 = 2;
const byte PIN_LED_W2 = 4;
const byte PIN_LED_W3 = 7;
const byte PIN_LED_W4 = 8;

// Fonction setup(), appelée au démarrage de la carte Arduino
void setup() {

  // Initialise les broches
  pinMode(PIN_LED_R1, OUTPUT);
  pinMode(PIN_LED_G1, OUTPUT);
  pinMode(PIN_LED_B1, OUTPUT);
  pinMode(PIN_LED_R2, OUTPUT);
  pinMode(PIN_LED_G2, OUTPUT);
  pinMode(PIN_LED_B2, OUTPUT);
  pinMode(PIN_LED_W1, OUTPUT);
  pinMode(PIN_LED_W2, OUTPUT);
  pinMode(PIN_LED_W3, OUTPUT);
  pinMode(PIN_LED_W4, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // allumer récepteur IR
}

// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop() {

  if (irrecv.decode(&results)) {
     Serial.println(results.value, HEX); // affiche la valeur de la touche actionnée en hexadécimal
     switch(results.value)
     {
     case 0xFFA25D:digitalWrite(PIN_LED_W1, !digitalRead(PIN_LED_W1));
                   digitalWrite(PIN_LED_W2, !digitalRead(PIN_LED_W2));
                   digitalWrite(PIN_LED_W3, !digitalRead(PIN_LED_W3));
                   digitalWrite(PIN_LED_W4, !digitalRead(PIN_LED_W4)); //touche 1 télécommande pour rampe led
                   break;              
     case 0xFF629D:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
                   digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
                   digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
                   digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
                   digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
                   digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 2 télécommande pour phare white
                   break;
     case 0xFFE21D:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
                   digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
                   digitalWrite(PIN_LED_B1, LOW);
                   digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
                   digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
                   digitalWrite(PIN_LED_B2, LOW); //touche 3 télécommande pour phare yellow
                   break;
     case 0xFF22DD:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
                   digitalWrite(PIN_LED_G1, LOW);
                   digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
                   digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
                   digitalWrite(PIN_LED_G2, LOW);
                   digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 4 télécommande pour phare magenta
                   break;
     case 0xFF02FD:digitalWrite(PIN_LED_R1, LOW);
                   digitalWrite(PIN_LED_G1, LOW);
                   digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
                   digitalWrite(PIN_LED_R2, LOW);
                   digitalWrite(PIN_LED_G2, LOW);
                   digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 5 télécommande pour phare blue
                   break;
     case 0xFFC23D:digitalWrite(PIN_LED_R1, LOW);
                   digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
                   digitalWrite(PIN_LED_B1, LOW);
                   digitalWrite(PIN_LED_R2, LOW);
                   digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
                   digitalWrite(PIN_LED_B2, LOW); //touche 6 télécommande pour phare green
                   break;
     }
    
     irrecv.resume(); // Recoit la prochaine valeur
  }
 }

En général, on ajoute un case 'default' qui prend en compte les cas non traités par les précédents. Dans ton cas, ce serait la réception d'un code inconnu, par exemple une touche appuyée lais non prévue dans ta liste. Tu pourrais ajouter ce cas et faire clignoter une led rapidement pour le signaler.