A forma mais simples é com uma interrupção. Veja como fazer nesse link.https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/.
byte ledPin = 3;//ledPin1 = 3;ledPin2 = 4;ledPin3 = 5;ledPin4 = 6; ledPin5 = 7; ledPin6 = 8;
const byte interruptPin = 2;
volatile byte state = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, RISING);
}
void loop() {
digitalWrite(ledPin, state);
}
void blink() { /////chama esta função quando o botão ir de 0(0v) para 1(5v ou 3,3)
if(ledPin==3)state=HIGH;
else if(ledPin>3 &&ledPin<9)ledPin++;
else{
state=LOW;
for(byte i=ledPin;i<3;i--)digitalWrite(i, state);
ledPin = 3;
}
}
Acredito que funcione... não testei.