Wie zeitliche Abläufe ohne delay() einfach gestalten?

Am besten vergegenwärtigt man sich das Verhalten des Controllers mit einem Endlichen Zustandsautomaten (Endlicher Automat – Wikipedia). Bedingungen für Zustandswechsel sind dann nicht nur externe Ereignisse, sondern könnten dann auch abgelaufene Zeitperioden sein. Beispiel: Ausgangszustand sei A. Nach 5 Sekunden soll Zustand B eingenommen werden: Bei betreten von Zustand A berechnet man die neue Zielzeit aus der aktuellen Zeit plus 5 Sekunden. Wenn die Zielzeit erreicht ist, wird der Zustand auf B gewechselt.

Grüße,
Oliver