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
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);
}