constexpr byte driverPUL = 7; // PUL- pin
constexpr byte driverDIR = 6; // DIR- pin
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution for your motor
void setup() {
pinMode(driverPUL, OUTPUT);
pinMode(driverDIR, OUTPUT);
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop() {
// Read the potentiometer value
int potentiometerValue = analogRead(A0);
// Map the potentiometer value to a speed range
int delayTime = map(potentiometerValue, 0, 1023, 3000, 100); // Adjust as needed for speed control
// Move the motor one full rotation forward
digitalWrite(driverDIR, HIGH);
for (int i = 0; i < stepsPerRevolution; i++) {
digitalWrite(driverPUL, HIGH);
delayMicroseconds(delayTime);
digitalWrite(driverPUL, LOW);
delayMicroseconds(delayTime);
}
// Wait for one second
delay(1000);
// Move the motor one full rotation backward
digitalWrite(driverDIR, LOW);
for (int i = 0; i < stepsPerRevolution; i++) {
digitalWrite(driverPUL, HIGH);
delayMicroseconds(delayTime);
digitalWrite(driverPUL, LOW);
delayMicroseconds(delayTime);
}
// Wait for one second before repeating the loop
delay(1000);
}