Code für ansteuerung von Pumpen funktioniert nicht

Habe mal meine Vermutungen in den Code Kommentiert.

// Forensketch - kompiliert fehlerfrei - reiner Test auf Basis von
// https://forum.arduino.cc/t/code-fur-ansteuerung-von-pumpen-funktioniert-nicht/900401?u=my_xy_projekt
const byte tasterGruen = 12;
const byte relaisSchlauch = 9;
const byte relaisLuft = 8;

unsigned int colaTimer;
unsigned int asbachTimer;

unsigned long lastMillis;

void setup()
{
  pinMode(tasterGruen, INPUT_PULLUP);
  pinMode(relaisSchlauch, OUTPUT);
  pinMode(relaisLuft, OUTPUT);
}

void loop()
{
  if ((digitalRead(tasterGruen) == LOW) && (pumpenAnsteuerung() == LOW)) // Hier fragst du zusätzlich ab ob die Funktion nicht schon läuft.
  {
    asbachTimer = 2000;
    colaTimer = 2000;
    lastMillis = millis();
    pumpenAnsteuerung();
  }
  if (pumpenAnsteuerung()) pumpenAnsteuerung(); // Verstehe nicht was hier passiert.
}

bool pumpenAnsteuerung()
{
  bool returnWert = false; // Hier definierst du die Variable "returnWert" und setzt sie auf false
  if ((millis() - lastMillis) <= colaTimer)
  {
    digitalWrite(relaisLuft, HIGH);
    returnWert = true; // Wenn die Pumpen laufen setzt du die Variable auf true. Ich vermute um den zustand der Funktion PumpenAnsteuerung abfragen zu können?!
  }
  else
  {
    digitalWrite(relaisLuft, LOW);
  }
  if ((millis() - lastMillis) <= asbachTimer)
  {
    digitalWrite(relaisSchlauch, HIGH);
    returnWert = true;
  }
  else
  {
    digitalWrite(relaisSchlauch, LOW);
  }
  return returnWert; // Wo wird der returnWert denn verarbeitet?
}
1 Like