Zwei Fehler die zu seltsamen Verhalten führten. Zuerst habe ich in der for-Schleife für das Öffnen der Ventile durch ständiges Testen und Ändern nur noch Schwachsinn stehen gehabt. Etwas Schlaf und ein frisches Auge haben dies behoben. Dazu habe ich jetzt die Variablen für millis() als unsigned long initialisiert. Ich hab den Überlauf etwas unterschätzt. Hatte nur im Kopf, dass millis(); nach 49 Tagen überläuft. Ich hab dabei aber ignoriert, dass meine Variablen als Integer schon schneller überlaufen.
Jetzt machen die Ventile was sie sollen. Nur die Wassertropfen muss ich noch bändigen.
Als nächstes steht etwas Optimierung auf dem Plan. Der Code ist kaum kommentiert, ein paar Funktionen lassen sich vereinfachen oder auslagern um sie an mehreren Stelen zu nutzen. Zur Zeit sind 18.740 Bytes (von einem Maximum von 30.720 Bytes) in Gebrauch. Und ein paar Funktionen sollen noch implementiert werden![]()
Lesezeichen