EDIT: ik moet sneller typen. Dit lijkt een beetje op wat Big bang schetst, maar met veel minder code en de data in een constante array (data hoort niet in de code!)
Als je nou een paar arrays maakt in de microcontroller; de eerste bevat, voor elke boei, de aan/uit tijden, elke keer een byte, in stappen van 100ms. Voor 1 sec aan, 2 sec uit, 4 sec aan, 4 sec uit (bijvoorbeeld) staat daar 10, 20, 40, 40. Die array is dus het aantal boeien * het aantal stappen groot, en kun je in het flash geheugen zetten.
In het werkgeheugen heb je ook een array, met voor elke boei 2 bytes. De eerste is de huidige stap, en de tweede het aantal tikken dat de boei nog in deze stap moet blijven. Als de tweede op 0 staat, ga je een stap verder.
Je begint dus voor deze boei met het kopiëren van de waarde 10 naar het tweede byte, en elke 100ms, op een timer interrupt, trek je daar 1 van af. zodra je op 0 komt, hoog je het eerste byte met 1 op (volgende stap), en kopieer je de overeenkomstige waarde uit de constanten array, en schakel je het LEDje om. Zo loop je steeds, in de timer interrupt, de hele lijst boeien af.
Je zou een waarde 0 in de constante array kunnen gebruiken om aan te geven dat je weer terug moet naar het begin, of alle boeien hetzelfde aantal stappen geven.