#include <Arduino.h>
#define MOTOR_STEPS 200
#define MOTOR_ACCEL 2000
#define MOTOR_DECEL 1000
#define MICROSTEPS 2
#define DIR 8
#define STEP 9
#define SLEEP 13
#include "A4988.h"
#define MS1 10
#define MS2 11
#define MS3 12
int RPM =120;
A4988 stepper(MOTOR_STEPS, DIR, STEP, SLEEP, MS1, MS2, MS3);
void setup() {
Serial.begin(9600);
stepper.begin(RPM, MICROSTEPS);
stepper.enable();
stepper.setSpeedProfile(stepper.LINEAR_SPEED, MOTOR_ACCEL, MOTOR_DECEL);
stepper.startRotate(360);
}
void loop() {
stepper.startRotate(360);
static int step = 0;
unsigned wait_time = stepper.nextAction();
if (wait_time){
Serial.print(" step="); Serial.print(step++);
Serial.print(" dt="); Serial.print(wait_time);
Serial.print(" rpm="); Serial.print(stepper.getCurrentRPM());
Serial.println();
} else {
stepper.disable();
Serial.println("END");
delay(3000);
RPM=RPM*2;
}
}