Wenn du uns deinen Sketch zeigst, direkt im Forum und in Code-Tags, dann können wir den prüfen und evtl. deinen Fehler sehen.
Code mit der Schaltfläche </> oben links im Editorfenster.
Das wird ihm nichts helfen. Das >=50 wird immer zuerst wahr, egal in welcher Reihenfolge er abfragt.
Er könnte es mit einer Schrittkette/Ablaufsteuerung lösen.
Du kannst auch hier im Forum mal nach 'Schrittkette' suchen - da gibt's viele Beiträge zu.
MicroBahner:
Das wird ihm nichts helfen. Das >=50 wird immer zuerst wahr, egal in welcher Reihenfolge er abfragt.
Er könnte es mit einer Schrittkette/Ablaufsteuerung lösen.
Ja, ich habe jetzt einfach eine Variabel eingefügt die bei jedem Punkt eins höher gestellt wird.
else if (Saugmodus==1 and BAT_OK==0 and digitalRead(Ix_BT1) or digitalRead(Ix_MCU1)) //Startvorgang Sauger und Wischer
{
currentMillis = millis(); //Anfang zählung Zeit
if (currentMillis - startMillis >= 50 and Static==0) //nach 50ms starten des Saugers
{
digitalWrite(Qx_Saug, true);
startMillis = currentMillis;
Static = 1;
}
else if (currentMillis - startMillis >= 1000 and Static==1)
{
digitalWrite(Qx_Wisch1, true); //10 Sekunden danach, start des 1. Wischers
startMillis = currentMillis;
Static = 2;
}
else if (currentMillis - startMillis >= 200 and Static == 2)
{
digitalWrite(Qx_Wisch2, true); //Nach 200ms, start des 2. Wischers
startMillis = currentMillis;
Static = 0;
Saugmodus = 2;
}
MicroBahner:
Das >=50 wird immer zuerst wahr, egal in welcher Reihenfolge er abfragt.
Soll es ja auch. Das geht aber auch nicht weil die Reihenfolge wahrscheinlich "50, 1000, 200" sein soll und nicht "50, 200, 1000". Hatte ich übersehen. Dann braucht man in der Tat einen ganz anderen Ansatz