From 0bf22c9a04189a958f174d954fdc63a44a5d2491 Mon Sep 17 00:00:00 2001 From: Lukas Heiligenbrunner Date: Sat, 11 Apr 2020 10:54:59 +0200 Subject: [PATCH] fix switch to error state after too long turn on time --- src/main.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 0b0b613..4692071 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,8 +22,10 @@ Ticker status; //pumpendauer maximum ticker Ticker pumpendauer; +int turnontime = -1; + void pumpeSchalten(bool on) { -// digitalWrite(4,on); + // digitalWrite(4,on); if (on) { Serial.println("versuche Pumpe EIN zuschalten"); } else { @@ -32,8 +34,8 @@ void pumpeSchalten(bool on) { if (allow && !error) { if (on) { - pumpendauer.once(maxpumpdauer, []() { //erlaube keine einschaltung von mehr als 60 sek - if (digitalRead(DruckSensorPin)) { + pumpendauer.once(maxpumpdauer + 1, []() { //erlaube keine einschaltung von mehr als 60 sek + if (millis() - turnontime >= maxpumpdauer * 1000 && turnontime != -1) { //error zu lange Serial.println("\n\npumpe lief mehr als 10 Minuten durchgaengig"); pumpeSchalten(false); @@ -41,11 +43,12 @@ void pumpeSchalten(bool on) { } }); } + turnontime = millis(); digitalWrite(SchuetzPin, on); Serial.println("[Erfolg] pumpe wird geschalten"); } else { - Serial.println( - "[FEHLGESCHLAGEN] Schalten des Schütz gesperrt durch Timeout oder Fehler-- sofortiges ausschalten der pumpe\n"); + Serial.println("[FEHLGESCHLAGEN] Schalten des Schütz gesperrt durch Timeout oder Fehler-- sofortiges ausschalten der pumpe\n"); + turnontime = -1; digitalWrite(SchuetzPin, LOW); }