LED Blinking Patterns

Solving Approach

How do you plan to solve it?

 
 

 

 

 

Code

/*Paste your code here*/


const int buttonPin = 2;  
const int leds[] = {3, 4, 5, 6};  // LED pins (LED1 = pin3, LED2 = pin4, etc.)

int pattern = 0;      
int lastButtonState = HIGH;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 200;

void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(leds[i], OUTPUT);
  }
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  int reading = digitalRead(buttonPin);


  if (reading == LOW && lastButtonState == HIGH && (millis() - lastDebounceTime) > debounceDelay) {
    pattern = (pattern + 1) % 5; // Cycle through 5 patterns
    lastDebounceTime = millis();
  }
  lastButtonState = reading;


  switch (pattern) {
    case 0: pattern1(); break;
    case 1: pattern2(); break;
    case 2: pattern3(); break;
    case 3: pattern4(); break;
    case 4: pattern5(); break;
  }
}


void pattern1() {
  allOff();
  for (int i = 0; i < 4; i++) digitalWrite(leds[i], HIGH);
  delay(300);
  allOff();
  delay(300);
}


void pattern2() {
  digitalWrite(leds[0], HIGH); // LED1
  digitalWrite(leds[2], HIGH); // LED3
  digitalWrite(leds[1], LOW);
  digitalWrite(leds[3], LOW);
  delay(300);

  digitalWrite(leds[0], LOW);
  digitalWrite(leds[2], LOW);
  digitalWrite(leds[1], HIGH); // LED2
  digitalWrite(leds[3], HIGH); // LED4
  delay(300);
}


void pattern3() {
  for (int i = 0; i < 4; i++) {
    allOff();
    digitalWrite(leds[i], HIGH);
    delay(250);
  }
}


void pattern4() {
  allOff();
  digitalWrite(leds[0], HIGH);
  digitalWrite(leds[1], HIGH);
  delay(400);
  allOff();
  digitalWrite(leds[2], HIGH);
  digitalWrite(leds[3], HIGH);
  delay(400);
}


void pattern5() {
  allOff();
  digitalWrite(leds[0], HIGH);
  digitalWrite(leds[3], HIGH);
  delay(400);
  allOff();
  digitalWrite(leds[1], HIGH);
  digitalWrite(leds[2], HIGH);
  delay(400);
}


void allOff() {
  for (int i = 0; i < 4; i++) digitalWrite(leds[i], LOW);
}

 

 

 

Output

Video

Add a video of the output (know more)

https://wokwi.com/projects/442532090942456833

 

 

 

Upvote
Downvote

Submit Your Solution

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