// Testing the "StepperDriver" library.
// Library: https://github.com/laurb9/StepperDriver
// It works okay.
// The .move and .rotate are relative.
#include <A4988.h>
#define stepPin 6
#define dirPin 7
const int stepsPerRev = 200;
const int rpm = 50;
const int microsteps = 1;
A4988 myStepper(stepsPerRev, dirPin, stepPin);
long position = 0L;
void setup()
{
Serial.begin(115200);
myStepper.begin(rpm, microsteps);
Serial.println("Testing the \"StepperDriver\" library");
Serial.println("200 steps forward");
myStepper.move(200);
delay(2000);
Serial.println("400 steps reverse");
myStepper.move(-400);
delay(2000);
Serial.println("200 steps forward");
myStepper.move(200);
delay(2000);
Serial.println("Additional angle 180");
myStepper.rotate(180);
delay(2000);
Serial.println("Additional angle 360");
myStepper.rotate(360);
delay(2000);
Serial.println("Additional angle 0");
myStepper.rotate(0);
delay(2000);
Serial.println("Back to zero position (-300)");
myStepper.move(-300);
delay(2000);
Serial.println("Use the potentiometer...");
}
void loop()
{
int value = analogRead(A0);
long newPosition = (long) value * 200L / 1023L;
long delta = newPosition - position;
myStepper.move(delta);
position = newPosition;
delay(100);
}