#include #include LiquidCrystal_I2C lcd(0x20,16,2); int relais = 3; int relaispompled = 13; int vlotter = 2; int vlotterwaarde = 0; long vorigemillies = 0; int vlotterteller = 0; long pomptijd = 180000; /* troubleshootingtijden */ //long pomptijd = 5000; //long rusttijd = 20000; long rusttijd = 3420000; long rest = 0; void setup() { pinMode (relais,OUTPUT); pinMode (relaispompled,OUTPUT); pinMode (vlotter,INPUT); Serial.begin(9600); lcd.init(); lcd.backlight(); lcd.setCursor(0,0); lcd.print("Welkom!"); delay(3000); lcd.clear(); } void loop() { unsigned long huidigemillies = millis(); vlotterwaarde = digitalRead(vlotter); delay(1); if (vlotterwaarde == LOW) { vlotterteller = vlotterteller + 1; } else vlotterteller = 0; digitalWrite(relais,LOW); digitalWrite(relaispompled,LOW); lcd.setCursor(0,0); lcd.print("pauze:"); lcd.setCursor(6,0); lcd.print((rusttijd/1000)-(huidigemillies - vorigemillies)/1000); lcd.print(" "); lcd.setCursor(0,1); lcd.print("pomp :"); lcd.setCursor(6,1); lcd.print(pomptijd/1000); lcd.setCursor(13,1); lcd.print(rest); if ((rusttijd/1000)-(huidigemillies/1000 - vorigemillies/1000) < 1) { lcd.setCursor(13,1); lcd.print(" "); } if ((huidigemillies - vorigemillies) > rusttijd) { vorigemillies = huidigemillies; while (((huidigemillies -vorigemillies) <= pomptijd ) && (vlotterteller < 50)) { lcd.setCursor(6,0); lcd.print((rusttijd/1000)); lcd.setCursor(6,1); lcd.print((pomptijd/1000)-(huidigemillies -vorigemillies)/1000); lcd.print(" "); rest = ((pomptijd/1000)-(huidigemillies -vorigemillies)/1000)-1; vlotterwaarde = digitalRead(vlotter); delay(1); if (vlotterwaarde == LOW) { vlotterteller = vlotterteller + 1; } else vlotterteller = 0; huidigemillies = millis(); digitalWrite(relais,HIGH); digitalWrite(relaispompled,HIGH); } vorigemillies = huidigemillies; } }