voici mon super code qui allume toutes mes leds.
maintenant apres quelques essais je me trouve face à un probleme
admetons que la sequence 1 soit une boucle qui allume/eteint successivement led 12, 11, 10 puis boucle, 12,11,10 puis boucle etc etc...
lors d'un autre appui sur piezzo alors passer à la sequence 2 qui allume/eteint succesivement led 9,8,7,6 puis boucle
etc etc.
je suis face à 2 blemes, comment si ce n'est avec loop, boucler une sequence... destinée à etre switchée et boucler sur une autre.
ici j'ai réussi à faire differentes séquences mais elle ne
bouclent pas... et surtout le switch de cas ne peut s'effectuer seulement lorsque la sequence est terminée...
#define THRESHOLD 100
#define SENSOR A0
byte cmp =0; // compteur d'index
void setup(){
pinMode(0,INPUT); // Piezzo
pinMode(12,OUTPUT); // led 12
pinMode(11,OUTPUT); // led 11
pinMode(10,OUTPUT); // led 10
pinMode(9,OUTPUT); // led 9
pinMode(8,OUTPUT); // led 8
pinMode(7,OUTPUT); // led 7
pinMode(6,OUTPUT); // led 6
pinMode(5,OUTPUT); // led 5
pinMode(4,OUTPUT); // led 4
pinMode(3,OUTPUT); // led 3
pinMode(2,OUTPUT); // led 2
pinMode(1,OUTPUT); // led 1
}
void loop(){
if (analogRead(SENSOR) >= THRESHOLD)
switch(cmp){
case 0:
sequence1();
cmp++;
break;
case 1:
sequence2();
cmp++;
break;
case 2:
sequence3();
cmp++;
break;
case 3:
sequence4();
cmp++;
break;
case 4:
sequence5();
cmp++;
break;
case 5:
sequence6();
cmp++;
break;
case 6:
sequence7();
cmp++;
break;
case 7:
sequence8();
cmp++;
break;
case 8:
sequence9();
cmp++;
break;
case 9:
sequence10();
cmp++;
break;
case 10:
sequence11();
cmp++;
break;
case 11:
sequence12();
cmp++;
break;
case 12:
cmp = 0;
break;
}
delay(1); // anti rebond
}
void sequence1(){
digitalWrite(1, HIGH);
delay(200);
digitalWrite(1, LOW);
delay(2);
}
void sequence2(){
digitalWrite(2, HIGH);
delay(200);
digitalWrite(2, LOW);
delay(2);
}
void sequence3(){
digitalWrite(3, HIGH);
delay(200);
digitalWrite(3, LOW);
delay(2);
}
void sequence4(){
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
delay(2);
}
void sequence5(){
digitalWrite(5, HIGH);
delay(200);
digitalWrite(5, LOW);
delay(2);
}
void sequence6(){
digitalWrite(6, HIGH);
delay(200);
digitalWrite(6, LOW);
delay(2);
}
void sequence7(){
digitalWrite(7, HIGH);
delay(200);
digitalWrite(7, LOW);
delay(2);
}
void sequence8(){
digitalWrite(8, HIGH);
delay(200);
digitalWrite(8, LOW);
delay(2);
}
void sequence9(){
digitalWrite(9, HIGH);
delay(200);
digitalWrite(9, LOW);
delay(2);
}
void sequence10(){
digitalWrite(10, HIGH);
delay(200);
digitalWrite(10, LOW);
delay(2);
}
void sequence11(){
digitalWrite(11, HIGH);
delay(200);
digitalWrite(11, LOW);
delay(2);
}
void sequence12(){
digitalWrite(12, HIGH);
delay(200);
digitalWrite(12, LOW);
delay(2);
}