besoin d'aide, controleur de sequence leds

Bonjour, je suis nouveau sur le forum et sur arduino, je souhaiterais créer un programme qui comprend 5 bouton poussoirs qui commande chacun une séquence de leds qui doit tourner en boucle jusqu’à la prochaine commande.
j’ai compiler un bout de code que je met en pièce jointe dans ce post.
le seul problème c’est que pour changer la séquence je suis obliger de resetter la carte arduino uno,

Existe t’il une solution qui permette de changer de séquence sans avoir a resetter la carte?

Merci pour votre aide.
Guillaume.

Blinkmulti.ino (4.33 KB)

Je pense que votre premier problem est que sur ce forum presque personne ne peut lire Francais

bonjour, vires les

          while(true) {
}

et mets tous les digitalRead au début, ca fera plus propre dans le loop

hello testes ça

void loop() {
   if (digitalRead(buttonPin1)){buttonState1 =!buttonState1;}
   if (buttonState1 == HIGH) 
   {
  digitalWrite(12, HIGH);   // turn the LED on

etc...

Bonjour,

Il suffit de modifier le numéro de séquence quand on appuie sur les touches et d'effectuer la séquence suivant le numéro sélectionné

const int ledPin1 = 12;
const int ledPin2 = 11;
const int buttonPin1 = 10;
const int buttonPin2 = 9;
const int buttonPin3 = 8;
const int buttonPin4 = 7;
const int buttonPin5 = 6;
const int buttonPin6 = 5;
const int ledPin = 13;
// variables will change:
int buttonState = 0;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;
int buttonState6 = 0;

int sequence=0;

// the setup function runs once when you press reset or power the board
void setup() {
 // initialize digital pin 13 as an output.
 pinMode(13, OUTPUT);
 pinMode(12, OUTPUT);
 pinMode(11, OUTPUT);
 pinMode(10, INPUT);
 pinMode(9, INPUT);
 pinMode(8, INPUT);
 pinMode(7, INPUT);
 pinMode(6, INPUT);
 pinMode(5, INPUT);
}

// détermine le numéro de séquence
void loop() {
 if (digitalRead(buttonPin1) == HIGH)
   sequence=1;
 if (digitalRead(buttonPin2) == HIGH)
   sequence=2;
 if (digitalRead(buttonPin3) == HIGH)
   sequence=3;
 if (digitalRead(buttonPin4) == HIGH)
   sequence=4;
 
 switch (sequence)
 {
   case 1:
     digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
     delay(200);              // wait for a second
     digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
     delay(200);              // wait for a second
     digitalWrite(11, HIGH);
     delay(200);
     digitalWrite(11, LOW);
     delay(200);
     break;

   case 2:
     digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
     delay(100);              // wait for a second
     digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
     delay(50);              // wait for a second
     digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
     delay(100);              // wait for a second
     digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
     delay(50);              // wait for a second
     digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
     delay(100);              // wait for a second
     digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
     delay(50);              // wait for a second
     digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
     delay(100);              // wait for a second
     digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
     delay(50);
     digitalWrite(11, HIGH);
     delay(100);
     digitalWrite(11, LOW);
     delay(50);
     digitalWrite(11, HIGH);
     delay(100);
     digitalWrite(11, LOW);
     delay(50);
     digitalWrite(11, HIGH);
     delay(100);
     digitalWrite(11, LOW);
     delay(50);
     digitalWrite(11, HIGH);
     delay(100);
     digitalWrite(11, LOW);
     delay(50);
     break;

   case 3:
     digitalWrite(11, HIGH);  digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
     delay(200);              // wait for a second
     digitalWrite(11, LOW); digitalWrite(12, LOW);   // turn the LED off by making the voltage LOW
     delay(200);              // wait for a second
     break;
   
   case 4:
     digitalWrite(11, HIGH);  digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
     delay(100);              // wait for a second
     digitalWrite(11, LOW); digitalWrite(12, LOW);   // turn the LED off by making the voltage LOW
     delay(50);              // wait for a second
     digitalWrite(11, HIGH);  digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
     delay(100);              // wait for a second
     digitalWrite(11, LOW); digitalWrite(12, LOW);   // turn the LED off by making the voltage LOW
     delay(100);              // wait for a second
     digitalWrite(11, HIGH);  digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
     delay(100);              // wait for a second
     digitalWrite(11, LOW); digitalWrite(12, LOW);   // turn the LED off by making the voltage LOW
     delay(50);              // wait for a second
     break;
 }
}

Merci pour les réponses, je teste ca et je reviens vers vous.

Merci bcp ca fonctionne! Je n'ai pas tout compris mais je vais décortiquer pour comprendre le fonctionnement de cette prog. Je n'y serais pas arrivè sans votre aide. Guillaume.