LED Blinking Patterns

Solving Approach

How do you plan to solve it?

 
 

 

 

 

Code

/*Paste your code here*/
#define button1 12
#define LED1 8
#define LED2 7
#define LED3 4
#define LED4 2

uint8_t toggle =2; // first sequence
bool LED_Toggle = true;
bool Prev_Button_State = false;
uint8_t Pattern[4]={15,165,195,150};
bool Curr_Button_State;

void setup() {
  pinMode(button1, INPUT_PULLUP);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  Serial.begin(9600);

}

void loop() {

Curr_Button_State = !digitalRead(button1);
if(Prev_Button_State && !Curr_Button_State){
  Serial.write("\nToggle detected");
  toggle++;
  if (toggle>3) toggle =0;
}
Prev_Button_State = Curr_Button_State;

uint8_t p = (LED_Toggle) ?  Pattern[toggle] >>4 : Pattern[toggle] & 0x0F;
digitalWrite(LED1,(p & 1));
digitalWrite(LED2,((p>>1) & 1));
digitalWrite(LED3,((p>>2) & 1));
digitalWrite(LED4,((p>>3) & 1));
LED_Toggle = !LED_Toggle; 

delay(1000);
}
  


 

 

 

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!