AccelStepper mit 28BYJ-48 und ULN2003 - Warum bewegt er sich im Setup-Teil nicht?

Hallo zusammen,

es ist mal wieder so, dass ich auf dem Schlauch stehe. Ich mache die ersten Schritt mit einem Stepper ( 28BYJ-48 mit ULN2003). Dafür verwende ich die AccellStepper und folgenden Code:

#include <AccelStepper.h>


const byte Fullstep = 4;
const byte Halfstep = 8;
//const short fullRevolution = 2048;            // Fullstep (eins von beiden auskommentierern //)
const short fullRevolution = 4096;            // Halfstep (eins von beiden auskommentierern //)

const float SteppDegree = 11.35;              // Halfstep 11.32 - Fullstep 5.66

AccelStepper stepper(Halfstep, 5, 3, 4, 2);   // Pins IN1-IN3-IN2-IN4

void setup(void) {

  Serial.begin(9600);
  
  stepper.setMaxSpeed(1000.0);      // Maximale Geschwindigkeit
  stepper.setSpeed(200);            // Anfangsgeschwindegkeit
  stepper.setAcceleration(50);      // Beschleunigung

  stepper.movetTo(1024);
  stepper.run();

  delay(10000);
  
  
}

void loop() {


  stepper.moveTo(2048);
  stepper.run();
 
  
}

Im Loop-Teil bewegt sich der Motor. die Bewegung im Setup scheint er aber vollkommen zu ignorieren. Kann mir jemand sagen, woran das liegt? DANKE!

Viele Grüße
Josch

ersetze mal .moveTo()
durch:

stepper.runToNewPosition(1024);

und entferne das .run()

Die "stepper.run();" Methode muss in einer "Schleife" aufgerufen werden. Und loop() ist eine Funktion, die in einer Endlosschleife aufgerufen wird. Die "setup()" Funktion wird nur einmal beim Start des µControllers aufgerufen.

Danke für die schnelle Hilfe!

Das stepper.runToNewPosition(1024); von @my_xy_projekt hat mir den richtigen Befehl geliefert.
Und die Erklärung von @Kai-R führt dazu, dass ich es auch verstehe.

Damit sollte ich es schaffen das ganze sinnvoll weiter zu verfeinern!

1 Like

das .runToNewPosition() verbindet die moveTo() und die .run() Funktion.

Damit ist auch klar, dass diese Funktion wenn möglich nicht im eigentlichen Code verwendet werden sollte, da sie solange ausgeführt wird, bis die Position erreicht wurde und damit alles andere blockiert.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.