How do you plan to solve it?
/*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);
}

Add a video of the output (know more)
https://wokwi.com/projects/442532090942456833
