#include <AccelStepper.h>
// Define motor connections and steps per revolution
#define motor1StepPin 2
#define motor1DirPin 3
#define motor2StepPin 4
#define motor2DirPin 5
// Create stepper objects
AccelStepper motor1(AccelStepper::DRIVER, motor1StepPin, motor1DirPin);
AccelStepper motor2(AccelStepper::DRIVER, motor2StepPin, motor2DirPin);
void setup() {
// Set maximum speed and acceleration
motor1.setMaxSpeed(1000); // Set in steps per second
motor1.setAcceleration(500); // Set in steps per second^2
motor2.setMaxSpeed(200);
motor2.setAcceleration(500);
Serial.begin(9600);
}
void loop() {
// Example: Move Up/Down
motor1.moveTo(200); // Move up by 200 steps
motor1.runToPosition();
delay(1000);
// Example: Move Left/Right
motor2.moveTo(3000); // Move right by 300 steps
motor2.runToPosition();
delay(1000);
// Example: Move Up/Down
motor1.moveTo(400); // Move up by 200 steps
motor1.runToPosition();
delay(1000);
motor2.moveTo(100); // Move left to starting position
motor2.runToPosition();
delay(1000);
// Example: Move Up/Down
motor1.moveTo(600); // Move up by 200 steps
motor1.runToPosition();
delay(1000);
// Example: Move Left/Right
motor2.moveTo(3000); // Move right by 300 steps
motor2.runToPosition();
delay(1000);
// Example: Move Up/Down
motor1.moveTo(800); // Move up by 200 steps
motor1.runToPosition();
delay(1000);
// Example: Move Left/Right
motor2.moveTo(100); // Move right by 300 steps
motor2.runToPosition();
delay(1000);
// Example: Move Up/Down
motor1.moveTo(600); // Move up by 200 steps
motor1.runToPosition();
delay(1000);
// Example: Move Left/Right
motor2.moveTo(3000); // Move right by 300 steps
motor2.runToPosition();
delay(1000);
// Example: Move Up/Down
motor1.moveTo(400); // Move up by 200 steps
motor1.runToPosition();
delay(1000);
motor2.moveTo(100); // Move left to starting position
motor2.runToPosition();
delay(1000);
}