Hallo Forumsteilnehmer.
Bei meiner Frage geht es weniger darum das delay durch millis zu ersetzen, sondern um die Problematik drum herum, die das Funktionieren verhindert.
So wie ich es sehe kann das SO nicht funktionieren, die Frage lautet also wie ich es umbaue das es funktionieren kann.
Ich steige dabei in eine if-Schleife ein mit folgender Bedingung und Ausführung:
if ((zaehler == 0) && (tem > t1)) // zaehler = 0; fenster geschlossen
{
//seqstrt = millis();
myMCP.setPinX(0, A, OUTPUT, HIGH); //LED 2, rot, Bank_A; on;
digitalWrite(relaisPinA2, HIGH); //Relaisboard Spannungsversorgung EIN
//seqstrt = millis();
Serial.print(seqstrt);
Serial.println(" if_initialisierung");
if (seqstrt <= seqstrt + Fenster1 + FeOpen)
{
digitalWrite(relaisPin2, HIGH); //Fenster1 (D2_AUF & D3_ZU)
//delay(3500);
Serial.print(seqstrt);
Serial.println(" if_Schleife");
}
digitalWrite(relaisPin2, LOW); //Fenster1 AUF_STOP
Serial.print(seqstrt);
Serial.println(" else_schleife");
nachdem 5 mal ein anderer Motor angesteuert wird, folgt am Ende der Schleife ein:
zaehler++;
Diesen Zähler benutze ich um auf dem Display einen Status auszugeben.
Mit der delay-option funktioniert das ganze zwar, aber delay ist doof.
Ergo dachte ich mir ich ersetze den delay-teil mit einer millis-funktion, nachdem die Schleife aber nur EINMAL durchlaufen wird (da am ende ja der zaehler für den Status um eins erhöht wird), funktioniert millis natürlich nicht in dem gewünschtem Maße.
Für millis brauche ich eine Scheife und die gibt es nur im Loop, nur wie lager ich das Ganze so aus, das der Pin seine Zeit (HIGH) ist?
Wenn wer eine Idee hat und sich die Mühe machen will was dazu zu schreiben fände ich das toll.
Beste Grüße,
Betty