// test a stepper motor with a Pololu A4988 driver board, onboard led will flash at each step
// this version uses delay() to manage timing
byte directionPin = 8;
byte stepPin = 9;
int numberOfSteps = 10 ;
byte ledPin = 13;
int pulseWidthMicros = 20; // microsecondo
int millisbetweenSteps = 10; // milliseconds - or try 100 for slower steps
float pos = 0; // Variable where the stepper position will be stored (in steps)
void setup() {
Serial.begin(9600);
Serial.println("Start");
digitalWrite(ledPin, LOW);
pinMode(directionPin, OUTPUT);
pinMode(stepPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
digitalWrite(ledPin, !digitalRead(ledPin));
Serial.println(pos);
}
void loop() {
if(digitalRead(3) == HIGH){
Serial.println("shift down");
digitalWrite(directionPin, LOW);
for(int n = 0; n < numberOfSteps; n++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(pulseWidthMicros);
digitalWrite(stepPin, LOW);
delay(millisbetweenSteps);
digitalWrite(ledPin, !digitalRead(ledPin));
delay(20);
digitalWrite(ledPin, !digitalRead(ledPin));
}
pos-=1;
Serial.println(pos);
delay(200);
}}