... und sogar nur jeweils 1 Relais und nie mehrere gleichzeitig ...
Da braucht es noch nicht mal so bewährte Lösungen wie die Leuchtfeuer - Landkarte.
Das BlinkWithoutDelay reicht schon eigentlich.
Der grundlegend andere Ansatz: "loop ist sofort wieder fertig, macht aber fast nie was"
ist dir wohl noch unklar, bzw. erfordert, deine Funktionen komplett umzuschreiben
Zusätzlich zum BlinkWithoutDelay
- Musst dir nur noch merken, an welchem Ventil du grade bist.
- vergleichst du die aktuelle Laufzeit mit einer von 4 Laufzeiten
- machst du kein endloses Blinken, sondern sowas wie eine Schrittsteuerung mit Zeitgesteuerten Schritten
Ausserdem ist unklar, was passieren soll
- wenn alle 4 durch sind :
- Alle Ventile zu bis ein neues Kommando seriell reinkommt ?
- sofort wieder von vorne ?
- eine 5. Zeit, in der aber kein Ventil auf ist ?
- ( diese Zeit ist der Rest der Summe aller Zeiten auf 86400 ) so dass das Programm 24 Stunden später wieder losgeht
- wenn ein Kommando kommt während die Steuerung noch läuft:
- Die Steuerung schliesst das aktuelle Ventil und startet das neue Programm
- oder ? ( kann man sich komplizierte Sachen ausdenken )