problème sur kit led

Bonjour,

J'ai fait il y a quelque temps un kit led avec arduino uno pour ma voiture rc.

j'ai une touche de télécommande pour allumer/éteindre une rampe led sur le toit et 5 autre touche pour allumer de différente couleurs les phares

je voudrais ajouter une touche pour faire clignoter la rampe

j'ai ajouter a mon script la touche 7 pour faire clignoter les led de la rampe mais une fois lancé impossible d'arrêter la rampe

je pense que je n'utilise pas la bonne fonction

#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; 
     case 0xFF9867:digitalWrite(PIN_LED_W3, LOW);
                   digitalWrite(PIN_LED_W4, LOW);
                   digitalWrite(PIN_LED_W1, LOW);
                   digitalWrite(PIN_LED_W2, LOW);
                   digitalWrite(PIN_LED_R1, LOW);
                   digitalWrite(PIN_LED_G1, LOW);
                   digitalWrite(PIN_LED_B1, LOW);
                   digitalWrite(PIN_LED_R2, LOW);
                   digitalWrite(PIN_LED_G2, LOW);
                   digitalWrite(PIN_LED_B2, LOW); //touche 0 télécommande pour tout éteindre
                   break; 
     case 0xFFE01F:digitalWrite(PIN_LED_W1, !digitalRead(PIN_LED_W1));
                   digitalWrite(PIN_LED_W2, !digitalRead(PIN_LED_W2));
                   digitalWrite(PIN_LED_W3, LOW);
                   digitalWrite(PIN_LED_W4, LOW); 
                   delay(100);
                   digitalWrite(PIN_LED_W1, LOW);
                   digitalWrite(PIN_LED_W2, LOW);
                   digitalWrite(PIN_LED_W3, !digitalRead(PIN_LED_W3));
                   digitalWrite(PIN_LED_W4, !digitalRead(PIN_LED_W4)); //touche 7 télécommande pour rampe led clignotante
                   return;   
                   
     }
    
     irrecv.resume(); // Recoit la prochaine valeur
  }
 }

C'est le return à la fin du case 0xFFE01F: qui met la panique.
Que pensais-tu faire avec ce return?

j'ai mis "return" pour répéter l'action et faire clignoter les led en les allumant alternativement

C'est pas bon le return fait quitter loop() prématurément et du coup le irrecv.resume() n'est jamais exécuté.
il faudrait positionner une variable à TRUE lorsque tu décodes 0xFFE01F et exécuter le code du clignotement dans loop si la variable en question est à TRUE si n'importe laquelle des autres commandes est reçue mettre la variable à FALSE pour ne plus exécuter le code du clignotement.

return permet de sortir d'une fonction, là tu es dans un "switch / case" tu sort avec break;

ce qu'il faut que tu fasse comme le dit "fdufnews"c'est activer ou désactiver une variable quand tu appuis sur "7" qui pourra démarrer ou stopper le clignotement dans la suite de ton loop en dehors de "switch / case" et du if de ta télécommande

     case 0xFFE01F:                         //touche 7 télécommande pour rampe led clignotante
                   cligno_t7=!cligno_t7;          // active ou désactine le mode clignotant
                   delay(500);                    // attend 0,5s avant de continuer évite les rebonds de la télécommande
                   break;

je te conseil d'utiliser millis() pour gérer le clignotement de tes leds

donc si j'ai bien compris, je dois faire sa:

#include <IRremote.h>

int RECV_PIN = 13;

int cligno_t7;

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; 
     case 0xFF9867:digitalWrite(PIN_LED_W3, LOW);
                   digitalWrite(PIN_LED_W4, LOW);
                   digitalWrite(PIN_LED_W1, LOW);
                   digitalWrite(PIN_LED_W2, LOW);
                   digitalWrite(PIN_LED_R1, LOW);
                   digitalWrite(PIN_LED_G1, LOW);
                   digitalWrite(PIN_LED_B1, LOW);
                   digitalWrite(PIN_LED_R2, LOW);
                   digitalWrite(PIN_LED_G2, LOW);
                   digitalWrite(PIN_LED_B2, LOW); //touche 0 télécommande pour tout éteindre
                   break; 
    
     case 0xFFE01F:                         //touche 7 télécommande pour rampe led clignotante
                   cligno_t7=!cligno_t7;          // active ou désactine le mode clignotant
                   delay(500);                    // attend 0,5s avant de continuer évite les rebonds de la télécommande
                   break; 
                   
     }
       
     irrecv.resume(); // Recoit la prochaine valeur
  }

 }

mais après ou j' incère la définiton de la variable

cligno_t7 = digitalWrite(PIN_LED_W3, LOW);
digitalWrite(PIN_LED_W4, LOW);
digitalWrite(PIN_LED_W1, HIGH);
digitalWrite(PIN_LED_W2, HIGH);
delay(100);
digitalWrite(PIN_LED_W3, HIGH);
digitalWrite(PIN_LED_W4, HIGH);
digitalWrite(PIN_LED_W1, LOW);
digitalWrite(PIN_LED_W2, LOW);

bonjour,

je ne comprend pas cette erreur:

Arduino : 1.8.12 (Windows Store 1.8.33.0) (Windows 10), Carte : "Arduino Uno"

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

Kit_Led_RC_modif:115:46: error: void value not ignored as it ought to be

cligno_t7 = digitalWrite(PIN_LED_W3, LOW);

^

exit status 1
void value not ignored as it ought to be

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

#include <IRremote.h>

int RECV_PIN = 13;

int cligno_t7;

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; 
     case 0xFF9867:digitalWrite(PIN_LED_W3, LOW);
                   digitalWrite(PIN_LED_W4, LOW);
                   digitalWrite(PIN_LED_W1, LOW);
                   digitalWrite(PIN_LED_W2, LOW);
                   digitalWrite(PIN_LED_R1, LOW);
                   digitalWrite(PIN_LED_G1, LOW);
                   digitalWrite(PIN_LED_B1, LOW);
                   digitalWrite(PIN_LED_R2, LOW);
                   digitalWrite(PIN_LED_G2, LOW);
                   digitalWrite(PIN_LED_B2, LOW); //touche 0 télécommande pour tout éteindre
                   break; 
      case 0xFFE01F:                         //touche 7 télécommande pour rampe led clignotante
                   cligno_t7=!cligno_t7;          // active ou désactine le mode clignotant
                   delay(500);                    // attend 0,5s avant de continuer évite les rebonds de la télécommande
                   break;   
     }
    
     irrecv.resume(); // Recoit la prochaine valeur
     cligno_t7 = digitalWrite(PIN_LED_W3, LOW);
              digitalWrite(PIN_LED_W4, LOW);
              digitalWrite(PIN_LED_W1, HIGH);
              digitalWrite(PIN_LED_W2, HIGH);
              delay(100);
              digitalWrite(PIN_LED_W3, HIGH);
              digitalWrite(PIN_LED_W4, HIGH);
              digitalWrite(PIN_LED_W1, LOW);
              digitalWrite(PIN_LED_W2, LOW);
     return;
  }
 }

Bonjour,

digitalWrite() ne retourne rien, donc ne peut pas être affecté à une variable.

je crois qu'une relecture des tutos s'impose la,
je suis complètement perdu dans mon script ;D

Qu'est ce que tu veux faire avec

   cligno_t7 = digitalWrite(PIN_LED_W3, LOW);

cligno_t7 = digitalWrite(PIN_LED_W3, LOW);
digitalWrite(PIN_LED_W4, LOW);
digitalWrite(PIN_LED_W1, HIGH);
digitalWrite(PIN_LED_W2, HIGH);
delay(100);
digitalWrite(PIN_LED_W3, HIGH);
digitalWrite(PIN_LED_W4, HIGH);
digitalWrite(PIN_LED_W1, LOW);
digitalWrite(PIN_LED_W2, LOW);

c'est une définition de la variable "cligno_t7" pour faire clignoter des led quand j'appuis sue la touche 7 de ma télécommande:

case 0xFFE01F: //touche 7 télécommande pour rampe led clignotante
cligno_t7=!cligno_t7; // active ou désactine le mode clignotant
delay(500); // attend 0,5s avant de continuer évite les rebonds de la télécommande
break;

Ton programme dans le post #5 semble correct. Il faut juste lui ajouter le clignotement dans la loop quand cligno_t7 est vrai.

j'ai modifié en partant du programme de mon post #5

sa ce compile mais sa ne fait pas ce que je veut, on dirai que cligno_7 est toujours vrai

#include <IRremote.h>

int RECV_PIN = 13;

int cligno_t7;

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() {

  while(cligno_t7=1){digitalWrite(PIN_LED_W3, LOW);
                   digitalWrite(PIN_LED_W4, LOW);
                   digitalWrite(PIN_LED_W1, HIGH);
                   digitalWrite(PIN_LED_W2, HIGH);
                   delay(100);
                   digitalWrite(PIN_LED_W3, HIGH);
                   digitalWrite(PIN_LED_W4, HIGH);
                   digitalWrite(PIN_LED_W1, LOW);
                   digitalWrite(PIN_LED_W2, LOW);
                   break;}
                  
 
  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;
     case 0xFF9867:digitalWrite(PIN_LED_W3, LOW);
                   digitalWrite(PIN_LED_W4, LOW);
                   digitalWrite(PIN_LED_W1, LOW);
                   digitalWrite(PIN_LED_W2, LOW);
                   digitalWrite(PIN_LED_R1, LOW);
                   digitalWrite(PIN_LED_G1, LOW);
                   digitalWrite(PIN_LED_B1, LOW);
                   digitalWrite(PIN_LED_R2, LOW);
                   digitalWrite(PIN_LED_G2, LOW);
                   digitalWrite(PIN_LED_B2, LOW); //touche 0 télécommande pour tout éteindre
                   break;
   
     case 0xFFE01F:                         //touche 7 télécommande pour rampe led clignotante
                   cligno_t7=!cligno_t7;          // active ou désactine le mode clignotant
                   delay(500);                    // attend 0,5s avant de continuer évite les rebonds de la télécommande
                   break;
                   
     }
       
     irrecv.resume(); // Recoit la prochaine valeur
  }

 }

C'est presque ça, ce n'est pas cligno_t7=1 mais cligno_t7==1. Ton while() avec un break est équivalent à un if
Il faudrait faire quelque chose comme ça

  if (cligno_t7)
  {
    static unsigned long millisStart=0;
    if (millis()-millisStart>=300)
    {
      millisStart=millis();
      if (digitalRead(PIN_LED_W1))
      {
        digitalWrite(PIN_LED_W1, LOW);
        digitalWrite(PIN_LED_W2, LOW);
        digitalWrite(PIN_LED_W3, HIGH);
        digitalWrite(PIN_LED_W4, HIGH);
      }
      else
      {
        digitalWrite(PIN_LED_W1, HIGH);
        digitalWrite(PIN_LED_W2, HIGH);
        digitalWrite(PIN_LED_W3, LOW);
        digitalWrite(PIN_LED_W4, LOW);
      }
    }
  }

merci beaucoup pour ton aide sa marche!!

Avec plaisir. Bonne continuation.