Guten Morgen ,
ich habe folgendes Problem:
In einer Unterfunktion sollen zwei Motoren angesprochen werden. Der erste soll nach dem Aufrufen des Codeteiles nach dem Abfragen von 2 Sensorständen sofort loslaufen, bis einer der Sensoren von Low auf High wechselt. Und wenn dieser Motor läuft soll der 2.Motor mit einer Zeitverzögerung von 2 sec auch anlaufen und 2 Sekunden später sofort wieder ausgehen.
Der Code kommt aber nur bis zum Anlaufen des 1. Motors ...das war`s und ich komme nicht drauf, weshalb. Hat jemand eine Idee ?Hier ist mal der Code:
void fuellen()
{
if ( (digitalRead(Sensor1Pin) == LOW ) && (digitalRead(Sensor2Pin) == LOW )) // Abfrage der Bedingungen..Sensor 1 u 2
{
//start2 = millis(); // hier beginn eine 2.Zeit, welche nur in diesem Codeteil verwendet werden soll
Pumpe2->setSpeed(200); // Pumpe 2 beginnt zu laufen wenn Sensor1 und Sensor 2 kein Wasser am Sensor erkannt
Pumpe2->run(FORWARD);
Serial.println("Fuellen beginnt jetzt ");
Serial.println("Pumpe 2 startet");
}
if ( millis() - start2 > 2000 ) // erst 2 Sekunden nach Beginn von dieser Sequenz soll hier Pumpe 1 für 1,5 Sekunden)
{
Pumpe1->setSpeed(150);
Pumpe1->run(FORWARD);
Serial.println(" Pumpe 1 startet 2 sekunden spaeter ");
}
else if ( millis() - start2 > 4000 )
{
Pumpe1->setSpeed(0);
Serial.println(" Pumpe 1 stoppt nach 2 Sekunden ");
}
else
{
if (digitalRead(Sensor1Pin) == HIGH)
{
Pumpe2->setSpeed(0); // wenn der Sensor erkennt, das der Füllstand 5 ml erreicht ist, soll Pumpe 2 wieder stoppen
Serial.println("Pumpe 2 stoppt wenn Sensor 1");
Zustand = MESSEN; //Weiterschaltbedingung: Wenn die Befülling erfolgt ist, kann mit dem eigentlichen Messvorgang gestartet werden
Serial.println("Fuellvorgang beendet");
}
}
}