Schrittmotoren programmieren

#define STEP_ONE 4
#define DIRECTION_ONE 5
//#define GROUND 6
#define STEP_TWO 8
#define DIRECTION_TWO 9


void setup() {
  pinMode (STEP_ONE, OUTPUT); //Schritt
  pinMode (DIRECTION_ONE, OUTPUT); //Richtung

  pinMode (STEP_TWO, OUTPUT); //Schritt
  pinMode (DIRECTION_TWO, OUTPUT); //Richtung

}

void loop() {
  digitalWrite (DIRECTION_ONE, HIGH);

  for (int x = 0; x < 1000; x++) {
    digitalWrite(STEP_ONE, HIGH);
    delayMicroseconds(600);
    digitalWrite(STEP_ONE, LOW);
    delayMicroseconds(60);
  }
  delay(1000);

  digitalWrite (DIRECTION_TWO, HIGH);

  for (int y = 0; y < 1001; y++) {
    digitalWrite(STEP_TWO, HIGH);
    delayMicroseconds(1000);
    digitalWrite(STEP_TWO, LOW);
    delayMicroseconds(1000);
  }
  delay(1000);
}

Hallo liebes Forum,

ich baue mit meinem Cousin eine Art Roboter. Jedes Bein ist mit 3 Schrittmotoren versehen. Die beiden for-Schleifen sind jeweils für ein Bein mit 3 Schrittmotoren. Soweit läuft er auch. WIr wollen das ganze jetzt so programmieren, dass er 5min in die eine Richtung läuft und dann umkehrt und in die andere läuft. Leider habe ich es nicht so mit C++ und wollte fragen, ob ihr uns dabei helfen könntet.

LG

Hallo,
das wird so nichts werden. Wie willst Du mehrere Schrittmotore unabhängig voneinander , mehr oder weniger gleichzeitig laufen lassen wenn du Schleifen verwendest die Laufzeiten um eine Sekunde haben und auch noch 2 Sekunde lang nichts passiert.Damit wird Dein Ablauf blockiert.

Für Schrittmotoren gibt es Libs die mache die Erzeugung der Schrittsignale im Hintergrund ohne zu blokieren.
Moba Tools
AccelStepper

Heinz

Hallo Heinz,

ich danke dir vielmals für den Tipp und werde mir das Ganze direkt mal anschauen!

Gruß und schönes Wochenende

Das kannst Du einfach mit millis() machen.
Such nach der Nachtwächtererklährung hier im Forum.
Grüße Uwe

Alles klar Uwe! Auch notiert. Vielen lieben Dank euch :smiley: