#include <AccelStepper.h>
// Define the stepper motor connections and steps per revolution
#define STEPS_PER_REV 200
#define DIR_PIN_1 2
#define STEP_PIN_1 3
#define DIR_PIN_2 4
#define STEP_PIN_2 5
#define DIR_PIN_3 6
#define STEP_PIN_3 7
#define DIR_PIN_4 8
#define STEP_PIN_4 9
// Define the delay times in milliseconds
#define DELAY_TIME_1 10000
#define DELAY_TIME_2 5000
// Define number of points per revolution
#define N 4
// Create AccelStepper objects for the motors
AccelStepper stepper1(1, STEP_PIN_1, DIR_PIN_1);
AccelStepper stepper2(1, STEP_PIN_2, DIR_PIN_2);
AccelStepper stepper3(1, STEP_PIN_3, DIR_PIN_3);
AccelStepper stepper4(1, STEP_PIN_4, DIR_PIN_4);
void setup() {
// Set the maximum speed and acceleration for the motors
stepper1.setMaxSpeed(1000);
stepper1.setAcceleration(500);
stepper2.setMaxSpeed(1000);
stepper2.setAcceleration(500);
stepper3.setMaxSpeed(1000);
stepper3.setAcceleration(500);
stepper4.setMaxSpeed(1000);
stepper4.setAcceleration(500);
}
void loop() {
// Rotate the four stepper motors 1/N of a revolution clockwise
for(int i = 0; i < 2; i++) {
stepper1.move(STEPS_PER_REV / N);
stepper1.setSpeed(200);
stepper1.runToPosition();
stepper2.move(STEPS_PER_REV / N);
stepper2.setSpeed(200);
stepper2.runToPosition();
stepper3.move(STEPS_PER_REV / N);
stepper3.setSpeed(200);
stepper3.runToPosition();
stepper4.move(STEPS_PER_REV / N);
stepper4.setSpeed(200);
stepper4.runToPosition();
delay(DELAY_TIME_1);
}
// Delay for 10 seconds
delay(DELAY_TIME_2);
}