Loop Vorgang wird gestoppt!

Hallo, ich bin gerade dabei für die Schule einen Roboter zusammenzubauen, der Cocktails mixen kann. Funktioniert alles soweit ganz gut. Jetzt komme ich aber an den Punkt, an dem ich sobald die Motoren aufhören sich zu bewegen, eine 5V Pumpe laufen lassen will.

void loop() {
  Stepper1.run();
  Stepper2.run();
  Stepper3.run();
  
  //Test
  if(Stepper3.distanceToGo() == 1) {
    MyTimer = millis();
    digitalWrite(pump1,HIGH);
  }

  if(millis() > TimeOut + MyTimer) 
  {
    digitalWrite(pump1,LOW);
  }

  
}

Dass Problem ist, dass die Motoren anfangen zu Wackeln, sobald ich die digitalWrite-Funktion ausführe. Wenn ich sie entferne wackeln sie nicht. Da ich die Accelstepper-Libary für die Motoren benutze, denke ich dass es damit zu tun hat, dass die Loop-Schleife pausiert wierd und dann wackeln. Gibt es da irgendeine Lösung um die Pumpe 4 Sekunden laufen zu lassen? Danke im Voraus.

Nur Code-Fragmente zu posten, ist eine dumme Idee. Meist liegt der Fehler da,?was man nicht sieht.

Ich vermute du hast ein Problem mit der Spannung. Zeige mal ein Schaltbild deines Projektes.

Ok also ich hab grad keinen aktuellen Schaltplan ich habe aber eine seperate Stromversorgung für die Motoren Treiber, deshalb denke ich nicht dass das daran liegt.

PS:Es würde mehrere Stunden dauern einen Schaltplan zu erstellen.

benny001: Ok also ich hab grad keinen aktuellen Schaltplan ich habe aber eine seperate Stromversorgung für die Motoren Treiber, deshalb denke ich nicht dass das daran liegt.

PS:Es würde mehrere Stunden dauern einen Schaltplan zu erstellen.

Na dann, wie stellst du dir vor, wie wir helfen können. Meine Kristallkugel ist Coronabedingt auf Kur.

Dann miss mal die Spannung mit einem Oszi.

Oder startet gar der Arduino neu ?

Ok,
Ich werde morgen mal einen Schaltplan schicken.

benny001: Ok, Ich werde morgen mal einen Schaltplan schicken.

Das ist ok. Hast du an der Pumpe eine Freilaufdiode dran ?

if(millis() > TimeOut + MyTimer)

if(millis() - MyTimer > TimeOut)

HotSystems: Das ist ok. Hast du an der Pumpe eine Freilaufdiode dran ?

Nein ,was ist dass genau?

benny001:
Nein ,was ist dass genau?

Über Google: Freilaufdiode einfach zu finden.