#include <AccelStepper.h>
AccelStepper stepper1(AccelStepper::DRIVER, 4, 5);
enum {Idle, Move3000CW, Move500CCW} StepperState;
void setup()
{
stepper1.setCurrentPosition(0);
stepper1.setMaxSpeed(1000.0);
stepper1.setAcceleration(800.0);
// move 3000 CW steps
stepper1.move(3000);
StepperState = Move3000CW;
}
void loop()
{
switch (StepperState)
{
case Idle: break;
case Move3000CW:
stepper1.run();
if (stepper1.distanceToGo() == 0)
{
stepper1.move(-500);
StepperState = Move500CCW;
}
break;
case Move500CCW:
stepper1.run();
if (stepper1.distanceToGo() == 0)
{
StepperState = Idle;
}
break;
}
}