I have a very simple sketch that runs a stepper motor.
I am using millis(); to time how long the stepper motor runs to a given position.
But, this just returns 0 in the Serial Monitor and I cannot understand why?
#include <AccelStepper.h>
#define enable23 13
#define STEP_PIN_23 11
#define DIR_PIN_23 10
#define enable17 12
#define STEP_PIN_17 4
#define DIR_PIN_17 5
AccelStepper stepper23(1, STEP_PIN_23, DIR_PIN_23);
AccelStepper stepper17(1, STEP_PIN_17, DIR_PIN_17);
unsigned long timeEnd;
unsigned long timeBegin;
void setup() {
Serial.begin(115200);
pinMode(enable23, OUTPUT);
digitalWrite(enable23, LOW);
stepper17.setMaxSpeed(3000);
stepper23.setMaxSpeed(3000);
}
void loop() {
stepper17.setCurrentPosition(0);
stepper17.moveTo(3520);
stepper17.setMaxSpeed(2000);
stepper17.setSpeed(-1750);
timeBegin = millis();
do {
stepper17.runSpeedToPosition();
} while (stepper17.distanceToGo() != 3520);
timeEnd = millis();
// stepper23.setCurrentPosition(0);
// stepper23.moveTo(10536);
// stepper23.setMaxSpeed(2000);
// stepper23.setSpeed(-1200);
// // stepper23.runSpeed();
// do {
// stepper23.runSpeedToPosition();
// } while (stepper23.distanceToGo() != 10536);
Serial.print("Start: ");
Serial.println(timeBegin);
Serial.print("End: ");
Serial.println(timeEnd);
unsigned long duration = timeEnd - timeBegin;
Serial.print("Duration: ");
Serial.println(duration);
}
Serial Monitor:
Start: 0
End: 0
Duration: 0