fix switch to error state after too long turn on time
This commit is contained in:
		
							
								
								
									
										13
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user