Denkfehler bei Projekt

Jortox:
wie würde das denn dann aussehen? Kan mir das nicht vorstellen und kan nix gescheites finden was gut aussieht. hast du vielleicht einen link zu deinem projekt?

Ich habe meine Beitrag zum Thema Servos auch nicht mehr gefunden. Hab Dir aber mal die Schrittkette rauskopiert. So wie das jetzt da steht sollte es aber laufen.

zwischen Case und break kommt dann das was Du machen willst. Messen Ventil auf zu hier wird halt immer nur für unterschiedliche Zeiten gewartet bis es weitergeht. Das ist ja aber bei Dir ähnlich .

Gruß Heinz

// Realisierung einer Schrittkette als Grundgerüst für eine Ablaufsteuerung
// Weiterschalt Bedingung next =TRUE

// in diesem Beispiel wird als Weiterschaltbedingung lediglich eine eine
// Wartezeit verwendet.Dazu gibts die function warte die 
// TRUE zurückliefert wenn die Wartezeit abgelaufen ist.


boolean next;         // Bedingung zum weiterschalten der Schrittkette
int schritt;          // Schrittzähler
int maxschritt = 5 ;  // Anzahl max Schritte

void setup() {
  Serial.begin(9600);
  next = true;
}

void loop() {

  if (next) {
    schritt++;
    Serial.print("Schritt--"); Serial.print(schritt);
    Serial.println();

    if ( schritt > maxschritt) { // Reset fang wieder von vorne an
      schritt = 0;
    }
  }

  switch (schritt) { // Schrittkette auswerten 
    case 1:   
      next = warte(1000);  // warte 1000ms 
      break;

    case 2:
      next = warte(2000);
      break;

    case 3:
      next = warte(3000);
      break;

    case 4:
      next = warte(4000);

      break;
  }
}// loop ende

// ==================Funktionen ================
// Warte Zeit / Pause

bool warte(uint16_t dt) { 
  unsigned long static alt_t;
  bool static flag;

  if (!flag) {  // Flanke erkennen und Timer resetten
    flag = true;
    alt_t = millis();
  }

  if (millis() - alt_t > dt) { // abfrage auf Zeit abgelaufen
    flag = false; // wenn abgelaufen flankenmerker zurück setzten und 
    return true;  // Function mit true verlassen
  }
  else {          // wenn noch nicht abgelaufen function mit false verlassen
    return false;
  }
}

Nachtrag

@postmaster
Danke für den Hinweis hab das geändert und wünschgemäß optimiert und kommentiert