// pomp.ino - de pomp van de waterkringloop schakelen met een n-MOSFET (IRLZ44N) op pin 9 // Droogloopbeveiliging: vlotterschakelaar tussen pin 2 en GND (gesloten = genoeg water). const int POMP = 9; const int VLOTTER = 2; const unsigned long AAN_MS = 10UL * 60 * 1000; // 10 minuten pompen ... const unsigned long CYCLUS_MS = 60UL * 60 * 1000; // ... per uur: 4 uur per dag unsigned long startCyclus = 0; bool vorige = false; void setup() { pinMode(POMP, OUTPUT); digitalWrite(POMP, LOW); // uit bij het opstarten (en de pull-down van 10 kOhm op de gate) pinMode(VLOTTER, INPUT_PULLUP); // vlotter open = HIGH = te weinig water Serial.begin(9600); } void loop() { unsigned long nu = millis(); if (nu - startCyclus >= CYCLUS_MS) { startCyclus += CYCLUS_MS; // een nieuw uur begint } bool tijdOmTePompen = (nu - startCyclus) < AAN_MS; bool genoegWater = (digitalRead(VLOTTER) == LOW); bool pompAan = tijdOmTePompen && genoegWater; digitalWrite(POMP, pompAan ? HIGH : LOW); if (pompAan != vorige) { // alleen iets melden als er iets verandert if (pompAan) Serial.println("pomp aan"); else if (!genoegWater) Serial.println("pomp uit: te weinig water in het reservoir!"); else Serial.println("pomp uit"); vorige = pompAan; } }