if I make the modification you said, nothing works.
with my code the whole part of the power on and flashing of the led works and it is not only the change of sequence with the button 1 that unzines me.
that is, sequence 2 takes me but does not return me to sequence 1 after a further click
int ledArray[6] = {8,9,10,11,12,13};
int statoLedArray[6] = {0, 0, 0, 0, 0, 0};
int sequenza1[6] = {8,9,10,11,12,13};
int sequenza2[6] = {13,12,11,10,9,8};
int pin_potenziometro = A0; // il pin a cui è connesso il potenziometro 1 //
int value_potenziometro=0; // lettura del valore del potenziometro 1 //
int pinPulsante1 = 6;
int pinPulsante2 = 7;
int statoPulsante1 = LOW;
int ultimaLettura = LOW;
int statoPulsante2 = LOW;
/*-----------------------------------------------------------*/
void setup() {
for(int i=0; i<sizeof(ledArray);i++){
pinMode(ledArray[i], OUTPUT);
}
pinMode(A0, INPUT ); //Il pin è in ingresso
pinMode(pinPulsante1, INPUT_PULLUP);
pinMode(pinPulsante2, INPUT_PULLUP);
}
void loop(){
value_potenziometro = analogRead(pin_potenziometro); //Memorizzo il valore della variabile con la lettura del Potenziometro
switch(value_potenziometro){
case 0 ... 145:{
for(int i = 0; i<sizeof(ledArray);i++){
digitalWrite(ledArray[i], LOW);
statoLedArray[i] = LOW;
}
break;
}
case 146 ... 290:{
if(statoLedArray[0] == LOW){
for(int i =0; i<4; i++){
digitalWrite(ledArray[0], HIGH);
delay(125);
digitalWrite(ledArray[0], LOW);
delay(125);
}
}
digitalWrite(ledArray[0], HIGH);
statoLedArray[0] = HIGH;
for(int i = 0; i<sizeof(ledArray);i++){
if(ledArray[i] != ledArray[0]){
digitalWrite(ledArray[i], LOW);
statoLedArray[i] = 0;
}
}
break;
}
case 291 ... 435:{
if(statoLedArray[1] == LOW){
for(int i =0; i<4; i++){
digitalWrite(ledArray[1], HIGH);
delay(125);
digitalWrite(ledArray[1], LOW);
delay(125);
}
}
digitalWrite(ledArray[1], HIGH);
statoLedArray[1] = HIGH;
for(int i = 0; i<sizeof(ledArray);i++){
if(ledArray[i] != ledArray[1]){
digitalWrite(ledArray[i], LOW);
statoLedArray[i] = LOW;
}
}
break;
}
case 436 ... 580:{
if(statoLedArray[2] == LOW){
for(int i =0; i<4; i++){
digitalWrite(ledArray[2], HIGH);
delay(125);
digitalWrite(ledArray[2], LOW);
delay(125);
}
}
digitalWrite(ledArray[2], HIGH);
statoLedArray[2] = HIGH;
for(int i = 0; i<sizeof(ledArray);i++){
if(ledArray[i] != ledArray[2]){
digitalWrite(ledArray[i], LOW);
statoLedArray[i] = LOW;
}
}
break;
}
case 581 ... 725:{
if(statoLedArray[3] == LOW){
for(int i =0; i<4; i++){
digitalWrite(ledArray[3], HIGH);
delay(125);
digitalWrite(ledArray[3], LOW);
delay(125);
}
}
digitalWrite(ledArray[3], HIGH);
statoLedArray[3] = HIGH;
for(int i = 0; i<sizeof(ledArray);i++){
if(ledArray[i] != ledArray[3]){
digitalWrite(ledArray[i], LOW);
statoLedArray[i] = LOW;
}
}
break;
}
case 726 ... 870:{
if(statoLedArray[4] == LOW){
for(int i =0; i<4; i++){
digitalWrite(ledArray[4], HIGH);
delay(125);
digitalWrite(ledArray[4], LOW);
delay(125);
}
}
digitalWrite(ledArray[4], HIGH);
statoLedArray[4] = HIGH;
for(int i = 0; i<sizeof(ledArray);i++){
if(ledArray[i] != ledArray[4]){
digitalWrite(ledArray[i], LOW);
statoLedArray[i] = LOW;
}
}
break;
}
case 871 ... 1023:{
if(statoLedArray[5] == LOW){
for(int i =0; i<4; i++){
digitalWrite(ledArray[5], HIGH);
delay(125);
digitalWrite(ledArray[5], LOW);
delay(125);
}
}
digitalWrite(ledArray[5], HIGH);
statoLedArray[5] = HIGH;
for(int i = 0; i<sizeof(ledArray);i++){
if(ledArray[i] != ledArray[5]){
digitalWrite(ledArray[i], LOW);
statoLedArray[i] = LOW;
}
}
break;
}
}
/*I set button 1 as a mode switch
to have sequence 2 with the switch on
while with the switch off, the initial sequence remains
i.e. the sequence 1*/
int lettura = digitalRead(pinPulsante1);
if(lettura != ultimaLettura){
if(lettura != statoPulsante1 and lettura == HIGH){
for(int i=0; i< sizeof(ledArray);i++){
ledArray[i] = sequenza2[i];
}
}else
for(int i=0; i< sizeof(ledArray);i++){
ledArray[i] = sequenza1[i];
}
statoPulsante1 = lettura;
}
ultimaLettura = lettura;
delay(10);
}