
How do you plan to solve it?
const int led1=3;
const int led2=4;
const int led3=5;
const int led4=6;
const int buttonPin=2;
int pattern =1;
int lastButtonState= HIGH;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);}
void loop() {
int currentbuttonstate = digitalRead(buttonPin);
if(lastButtonState == HIGH & currentbuttonstate == LOW){
pattern++;
if(pattern > 5){
pattern = 1;
}
delay(200);
}
lastButtonState = currentbuttonstate;
runpattern();
}
void runpattern(){
switch(pattern){
case 1:
// All blink
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(300);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(300);
break;
case 2:
// Even/Odd
digitalWrite(led1, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led4, LOW);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led4, HIGH);
delay(1000);
break;
case 3:
// 1-2-3-4 sequence
digitalWrite(led1, HIGH);
delay(200);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(200);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
delay(200);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
delay(200);
digitalWrite(led4, LOW);
break;
case 4:
// 12 then 34
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
delay(1000);
break;
case 5:
// 14 then 23
digitalWrite(led1, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led4, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
delay(1000);
break;
}
}
/*Paste your code here*/
Add a video of the output (know more)