Deinen Vorschlag hatte ich zuerst übernommen. In der ersten Loop konnte der Wasserfluss auch berechnet werden, ab der Zweiten jedoch nicht mehr (nan). Der Zeitstempel von oldWaterTime ist ja in der Berechnung von "flowRate" entscheidend, weshalb ich direkt nach der Berechnung oldWaterTime = millis setze. Und so funktioniert das auch nach der ersten Programmschleife.
Vielen Dank für die Erinnerung: der eingangs erwähnte command noInterrupts(); und interrupts(); setzt doch alle Interrupts (sofern vorhanden) aus, richtig? Wenn also ein weiteres z.B. Hardware-Interrupt vom ESP32 verwaltet wird, ist dieses mit dem Befehl noInterrupts mit einbegriffen?
Damit werde ich mich auseinandersetzen, noch bevor ich hier im Stundentakt Anfängerfragen stelle. ![]()