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 | //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); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user