A me viene in mente che si potrebbe risolvere senza usare una macchina a stati finiti.
-
Leggo da loop() la pressione del pulsante avvio, se premuto richiamo una funzione "esegui"
-
Nella funzione esegui tramite contatore di tempo millis() accendo in sequenza i led e salvo il loro stato
in un array
2.1) Sempre nella funzione Esegui leggo lo stato dei due pulsanti laterali se premuti, controllo lo stato dei
led nell' array, se tutti accesi accendo il led rosso faccio un deley(), spengo i led e termino, se non tutti
accesi accendo il led verde, faccio un deley(), sengo i led, e termino.
- Torno nel loop() e sono allo stato iniziale