3 led + 1 bouton

Bonjour à tous ! :slight_smile:
J'aimerais à l'aide de ma carte Arduino Uno faire une petite guirlande électrique avec 3 Led (rouge, vert, jaune) et un bouton presseur !
Le bouton presseur servirais a changer l'ordre d'allumage des led

Voici le montage :

Voici le code :

const int BTN_PIN = 2; 
const int RED_PIN = 12; 
const int GREEN_PIN = 11; 
const int YELLOW_PIN = 10; 
int ledPin[]={ RED_PIN, GREEN_PIN, YELLOW_PIN};
int length = sizeof ledPin/sizeof *ledPin; 
void setup() { 
  for(int i=0;i<length;i++) {
    pinMode(ledPin[i], OUTPUT); 
    pinMode(BTN_PIN,INPUT); 
  }
}
void loop() { 
sens1();

}

void sens1() { 
  for(int j=0;j<length;j++){
    digitalWrite(ledPin[j], HIGH);
    delay(100); 
    digitalWrite(ledPin[j], LOW);
    delay(100);
    digitalWrite(ledPin[j], HIGH);
    delay(200);
    digitalWrite(ledPin[j], LOW);
    delay(100); 
    if (digitalRead(BTN_PIN)==HIGH)
    {
      int ledPin[]={ GREEN_PIN, RED_PIN, YELLOW_PIN};
    }
         if (digitalRead(BTN_PIN)==LOW)
    {
      int ledPin[]={ RED_PIN, GREEN_PIN, YELLOW_PIN};
    }
  }
}

Mon problème est lorsqu'il lit la boucle for qui allume rouge puis vert puis jaune, et que j'appuie sur le bouton, il ne change pas l'odre d'allumage qui devrait devenir vert puis rouge puis jaune !
Voyez vous pourquoi svp?
Merci d'avance !! :slight_smile:

Sa ne marche pas .. :s .. euh j'ai refait un code, cette fois avec 3 sens :

const int BTN_PIN = 2; 
const int RED_PIN = 12; 
const int GREEN_PIN = 11; 
const int YELLOW_PIN = 10; 
int var=0;
int LED_PIN[]={ RED_PIN, GREEN_PIN, YELLOW_PIN};
int LED_PIN2[]={ GREEN_PIN, RED_PIN, YELLOW_PIN};
int LED_PIN3[]={ YELLOW_PIN, RED_PIN, GREEN_PIN};
int length = sizeof LED_PIN/sizeof *LED_PIN; 
void setup() { 
  for(int i=0;i<length;i++) {
    pinMode(LED_PIN[i], OUTPUT); 
    pinMode(BTN_PIN,INPUT); 
  }
}
void loop() { 
 
   if (digitalRead(BTN_PIN)==HIGH)
   {
     var++;
   }
   if (var==3) var=0;
   if (var==0) sens1();
   if (var==1) sens2();
   if (var==2) sens3();
}

void sens1() {
    for (int j=0;j<length;j++) {
   digitalWrite(LED_PIN[j], HIGH);
   delay(100);
   digitalWrite(LED_PIN[j], LOW);
   delay(100);
   
   }
}
void sens2() {
   for (int j=0;j<length;j++) {
   digitalWrite(LED_PIN2[j], HIGH);
   delay(100);
   digitalWrite(LED_PIN2[j], LOW);
   delay(100);
      }
}
      void sens3() {
   for (int j=0;j<length+1;j++) {
   digitalWrite(LED_PIN3[j], HIGH);
   delay(100);
   digitalWrite(LED_PIN3[j], LOW);
   delay(100);
   
   }
 }

Donc la il ne veut pas changer de sens .. est-ce du à digitalRead(BTN_PIN)==HIGH ?
Enfaite j'aimerais que quand j'appuie sur le bouton presseur, var augmente de 1, et en fonction de var, il appel tel ou tel sens !
Merci d'avance !

Merci à toi !!
J'ai essayer, seulement mon code ne marche pas :

const int BTN_PIN = 2; 
const int RED_PIN = 12; 
const int GREEN_PIN = 11; 
const int YELLOW_PIN = 10; 
int LED_PIN[]={ RED_PIN, GREEN_PIN, YELLOW_PIN};
int length = sizeof LED_PIN/sizeof *LED_PIN; 

volatile int num_del = 0;
void setup()
{
  
  for(int i=0;i<length;i++) {
    pinMode(LED_PIN[i], OUTPUT);  
  }
  pinMode(BTN_PIN,INPUT); 
  attachInterrupt(0, blink, CHANGE);
}

void loop()
{
   
  digitalWrite(LED_PIN[num_del], HIGH);
  delay(100);
  digitalWrite(LED_PIN[num_del], LOW);
  delay(100);
}

void blink()
{
  num_del++;
  if (num_del==3) num_del=0;
}

La del rouge clignote mais lorsque j'appuie sur le bouton, cela ne change pas .. les autres del ne clignotent pas ! Savez vous pourquoi svp ?
Merci d'avance !!

Non sa ne marche pas non ! J'ai aussi pensé que c'était l'interrupteur qui ne fonctionnait pas, je l'ai changer sa marche pas!
Est ce qu'il y aurait un montage plus simple qui vérifierait si c'est mes interrupteurs qui ne fonctionnent pas ou si c'est autre chose ?
est ce que je peux utiliser une pile de 9 volt et avec plusieurs résistance, l'interrupteur et une led ? si oui quels résistances ? (je suis nul en électricité je vois pas comment calculer ça .. =S)

Re !
J'ai mis une resistance de 10K sa ne marche pas ! mais quand j'enleve l'interrupteur et que je fais avec le fil ça marche .. ! j'ai deux interrupteur qui ne marche pas ?

Daccord merci !
Peut-on faire un array comme ceci ? : int Led[][] = {{led1,led2,led3},{led2,led1,led3},{led3,led1,led3,led2}}
bonne soirée !! Merci encore de ton aide =) !!

Merci beaucoup !!