How do you plan to solve it?
/*Paste your code here*/
int ledPins[] = {7, 6, 5, 4};
int buttonPin = 2;
int pattern = 1;
int lastButtonState = HIGH;
unsigned long lastDebounce = 0;
unsigned long debounceDelay = 50;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(ledPins[i], OUTPUT);
}
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
int reading = digitalRead(buttonPin);
if (reading == LOW && lastButtonState == HIGH && (millis() - lastDebounce) > debounceDelay) {
pattern++;
if (pattern > 5) pattern = 1;
lastDebounce = millis();
}
lastButtonState = reading;
switch (pattern) {
case 1: pattern1(); break;
case 2: pattern2(); break;
case 3: pattern3(); break;
case 4: pattern4(); break;
case 5: pattern5(); break;
}
}
void pattern1() {
setLeds(0,0,0,0);
delay(500);
setLeds(1,1,1,1);
delay(500);
}
void pattern2() {
setLeds(0,1,0,1);
delay(500);
setLeds(1,0,1,0);
delay(500);
}
void pattern3() {
setLeds(1,0,0,0);
delay(500);
setLeds(0,1,0,0);
delay(500);
setLeds(0,0,1,0);
delay(500);
setLeds(0,0,0,1);
delay(500);
}
void pattern4() {
setLeds(0,0,1,1);
delay(500);
setLeds(1,1,0,0);
delay(500);
}
void pattern5() {
setLeds(1,0,0,1);
delay(500);
setLeds(0,1,1,0);
delay(500);
}
void setLeds(int a, int b, int c, int d) {
digitalWrite(ledPins[0], a);
digitalWrite(ledPins[1], b);
digitalWrite(ledPins[2], c);
digitalWrite(ledPins[3], d);
}
Add a video of the output (know more)