#include <Arduino.h>
#include "A4988.h"
//pins definition
#define modBtnPin 5
#define rotLftPin 4
#define rotRgtPin 3
#define lftLedPin 13
#define rgtLedPin 12
#define drvDirPin 14
#define drvStepPin 15
#define drvMS1Pin 16
#define drvMS2Pin 17
#define drvMS3Pin 18
//global variables
int drvRPM = 100; //initial motor Revolution Per Minute
int drvMicrostep = 2; //microsteping setup (1-full; 2-half; 4-quarter...)
const int drvSPR = 200; //motor Step Per Revolution
int drvStep = 200; // initial value of step no to rotate
//declaration of stepper motor
A4988 stepper(drvSPR,drvDirPin,drvStepPin,drvMS1Pin,drvMS2Pin,drvMS3Pin);
void setupButtons()
{
pinMode(modBtnPin,INPUT_PULLUP);
pinMode(rotLftPin,INPUT_PULLUP);
pinMode(rotRgtPin,INPUT_PULLUP);
}
void setupLeds()
{
pinMode(lftLedPin,OUTPUT);
pinMode(rgtLedPin,OUTPUT);
digitalWrite(lftLedPin,LOW);
digitalWrite(rgtLedPin,LOW);
}
void setupDriver()
{
pinMode(drvStep,OUTPUT);
pinMode(drvDirPin,OUTPUT);
digitalWrite(drvStep,LOW); //no movment
digitalWrite(drvDirPin,LOW);
stepper.begin(drvRPM,drvMicrostep);
}
void setup() {
Serial.begin(9600);
setupButtons();
setupLeds();
setupDriver();
}
void loop() {
stepper.move(200);
delay(600);
stepper.move(-200);
delay(600);
}