Solving Approach

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;
 }
}

 

 

 

 

Code

/*Paste your code here*/


 

 

 

Output

Video

Add a video of the output (know more)

 

 

 

 

Upvote
Downvote

Submit Your Solution

Note: Once submitted, your solution goes public, helping others learn from your approach!