How do you plan to solve it?
First I build a function that contains each LED pattern where I use a "switch case" tool taking advantaje of a parameter which it depends on the times the button is pressed
The button logic consist of a variable that works as a counter which incremet its value each time the button is pressed. This code block will operate from void loop
/*Paste your code here*/
#define t 900
const char l1 = 2;
const char l2 = 3;
const char l3 = 4;
const char l4 = 5;
const char boton = 6;
int contador_pulsaciones = 0;
void patronLED(int g);
void setup() {
for(int i = 2; i<=5; i++) pinMode(i, OUTPUT);
for(int i = 2; i<=5; i++) digitalWrite(i, LOW);
pinMode(boton,INPUT_PULLUP);
}
void loop() {
unsigned char estado = digitalRead(boton);
delay(90);
if(estado == false) {
delay(100);
if (contador_pulsaciones >=5) contador_pulsaciones = 0;
else contador_pulsaciones++;
}
else patronLED(contador_pulsaciones);
}
void patronLED(int g){
switch(g){
case 1:
for(int i = 2; i<=5; i++) {digitalWrite(i, HIGH);}
delay(t);
for(int i = 2; i<=5; i++) {digitalWrite(i, LOW);}
delay(t);
break;
case 2:
for(int i = 2; i<=5; i+=2) {digitalWrite(i, HIGH);}
for(int i = 3; i<=5; i+=2) {digitalWrite(i, LOW);}
delay(t);
for(int i = 2; i<=5; i+=2) {digitalWrite(i, LOW);}
for(int i = 3; i<=5; i+=2) {digitalWrite(i, HIGH);}
delay(t);
break;
case 3:
for(int i = 2; i<=5; i++) digitalWrite(i, LOW);
for(int i = 2; i<=5; i++) {
digitalWrite(i, HIGH);
digitalWrite(i-1, LOW);
delay(t);
}
break;
case 4:
for(int i = 2; i<=3; i++) {digitalWrite(i, HIGH);}
for(int i = 4; i<=5; i++) {digitalWrite(i, LOW);}
delay(t);
for(int i = 2; i<=3; i++) {digitalWrite(i, LOW);}
for(int i = 4; i<=5; i++) {digitalWrite(i, HIGH);}
delay(t);
break;
case 5:
for(int i = 2; i<=5; i+=3) {digitalWrite(i, HIGH);}
for(int i = 3; i<=4; i++) {digitalWrite(i, LOW);}
delay(t);
for(int i = 2; i<=5; i+=3) {digitalWrite(i, LOW);}
for(int i = 3; i<=4; i++) {digitalWrite(i, HIGH);}
delay(t);
break;
default:
for(int i = 2; i<=5; i++) digitalWrite(i, LOW);
break;
}
Add a video of the output (know more)

