Hello, could anyone please help me with my code?
It's composed of 4 way switch and 8 Leds, each switch has a pattern of led lighting. What I really need is for leds to be also immediately turned off when the switch is off, even if its respective pattern is still not finished running. Thank you
Here's my code:
int LED1 = 13;
int LED2 = 12;
int LED3 = 11;
int LED4 = 10;
int LED5 = 9;
int LED6 = 8;
int LED7 = 7;
int LED8 = 6;
int S1 = 5;
int S2 = 4;
int S3 = 3;
int S4 = 2;
int val = HIGH;
int oneSec = 1000;
void setup() {
// put your setup code here, to run once:
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(S1, INPUT);
pinMode(S2, INPUT);
pinMode(S3, INPUT);
pinMode(S4, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if (val=digitalRead(S1)) {
digitalWrite(LED1, HIGH);//First row
delay(oneSec);
digitalWrite(LED2, HIGH);//Secondo row
delay(oneSec);
digitalWrite(LED1, LOW);
digitalWrite(LED3, HIGH);//Third row
delay(oneSec);
digitalWrite(LED2, LOW);
digitalWrite(LED4, HIGH);//Fourth row
delay(oneSec);
digitalWrite(LED3, LOW);//FIFTH
digitalWrite(LED5, HIGH);//FIFTH
delay(oneSec);
digitalWrite(LED4, LOW);//SIXTH
digitalWrite(LED6, HIGH);//SIXTH
delay(oneSec);
digitalWrite(LED5, LOW);//SEVENTH
digitalWrite(LED7, HIGH);//SEVENTH
delay(oneSec);
digitalWrite(LED6, LOW);//EIGHTH
digitalWrite(LED8, HIGH);//EIGHTH
delay(oneSec);
digitalWrite(LED7, LOW);//NINETH
delay(oneSec);
digitalWrite(LED8, LOW);
}
else{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
}
if (val = digitalRead(S2)) {
digitalWrite(LED1, HIGH);
delay(oneSec);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED1, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED3, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED4, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED4, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED5, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED5, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED6, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED6, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED7, LOW);
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED8, LOW);
} else{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
}
if (val = digitalRead(S3)) {
digitalWrite(LED1, HIGH);
delay(oneSec);
digitalWrite(LED1, LOW);//1st row
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);//2nd row
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED3, LOW);//3rd row
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED4, LOW);//4th row
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED5, LOW);//5th row
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED6, LOW);//6th row
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED7, LOW);//7th row
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED8, LOW);//8th row
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED7, LOW);//9th row
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED6, LOW);//10th row
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED5, LOW);//11th row
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED4, LOW);//12th row
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED3, LOW);//13th row
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);//14th row
digitalWrite(LED1, HIGH);//15th row
delay(oneSec);
} else{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
}
if (val = digitalRead(S4)) {
digitalWrite(LED1, HIGH);
delay(oneSec);
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED8, LOW);
delay(oneSec);
digitalWrite(LED7, LOW);
delay(oneSec);
digitalWrite(LED6, LOW);
delay(oneSec);
digitalWrite(LED5, LOW);
delay(oneSec);
digitalWrite(LED4, LOW);
delay(oneSec);
digitalWrite(LED3, LOW);
delay(oneSec);
digitalWrite(LED2, LOW);
delay(oneSec);
} else{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
}
}