fix switch to error state after too long turn on time

This commit is contained in:
Lukas Heiligenbrunner 2020-04-11 10:54:59 +02:00
parent a42b4529e6
commit 0bf22c9a04

View File

@ -22,8 +22,10 @@ Ticker status;
//pumpendauer maximum ticker //pumpendauer maximum ticker
Ticker pumpendauer; Ticker pumpendauer;
int turnontime = -1;
void pumpeSchalten(bool on) { void pumpeSchalten(bool on) {
// digitalWrite(4,on); // digitalWrite(4,on);
if (on) { if (on) {
Serial.println("versuche Pumpe EIN zuschalten"); Serial.println("versuche Pumpe EIN zuschalten");
} else { } else {
@ -32,8 +34,8 @@ void pumpeSchalten(bool on) {
if (allow && !error) { if (allow && !error) {
if (on) { if (on) {
pumpendauer.once(maxpumpdauer, []() { //erlaube keine einschaltung von mehr als 60 sek pumpendauer.once(maxpumpdauer + 1, []() { //erlaube keine einschaltung von mehr als 60 sek
if (digitalRead(DruckSensorPin)) { if (millis() - turnontime >= maxpumpdauer * 1000 && turnontime != -1) {
//error zu lange //error zu lange
Serial.println("\n\npumpe lief mehr als 10 Minuten durchgaengig"); Serial.println("\n\npumpe lief mehr als 10 Minuten durchgaengig");
pumpeSchalten(false); pumpeSchalten(false);
@ -41,11 +43,12 @@ void pumpeSchalten(bool on) {
} }
}); });
} }
turnontime = millis();
digitalWrite(SchuetzPin, on); digitalWrite(SchuetzPin, on);
Serial.println("[Erfolg] pumpe wird geschalten"); Serial.println("[Erfolg] pumpe wird geschalten");
} else { } else {
Serial.println( Serial.println("[FEHLGESCHLAGEN] Schalten des Schütz gesperrt durch Timeout oder Fehler-- sofortiges ausschalten der pumpe\n");
"[FEHLGESCHLAGEN] Schalten des Schütz gesperrt durch Timeout oder Fehler-- sofortiges ausschalten der pumpe\n"); turnontime = -1;
digitalWrite(SchuetzPin, LOW); digitalWrite(SchuetzPin, LOW);
} }