Hallo
Ich experimentiere gerade mit der AccelStepper Libary und dem Stepper Starterkit mit dem 28BYJ-48 Schrittmotor und dem dazugehörigen Treiberboard mit dem ULN2003.
Mein Problem ist der Motor läuft immer nur in eine Richtung.
#include <AccelStepper.h>
AccelStepper stepper(4,8,9,10,11);
//AccelStepper::FULL4WIRE (4 pins) on 8, 9, 10, 11
void setup()
{
Serial.begin(9600);
Serial.setTimeout(10);
stepper.setCurrentPosition(0);
stepper.setAcceleration(200);
stepper.setMaxSpeed(300);
stepper.move(512);
}
void loop()
{
if (stepper.distanceToGo() == 0)
{
delay(1000);
stepper.moveTo(-stepper.currentPosition());
}
stepper.run();
Serial.println(stepper.currentPosition());
}
Eigentlich erwarte ich dass der sich hin und her dreht, tut er aber nicht... immer nur stur im Uhrzeigersinn...
In der lib ist zwar ein ENUM für die Drehrichtung vorgesehen aber ich finde nirgens, wie ich ihm damit sage, lauf in die andere Richtung!
Zählen tut er richtig, zumindest spuckt der serialport mit die zahlen von -512 bis +512 aus.
Habt ihr einen Tipp für mich?
ok habs geschafft. würde nur gerne wissen ob das die quick and dirty variante ist oder so gewollt.
jedenfalls hab ich gerausgefunden dass ich mit
if(stepper.distanceToGo()<0)
{
stepper.setPinsInverted(true,false,false);
}
else
{
stepper.setPinsInverted(false,false,false);
}
die Richtung ändern kann