#include <Stepper.h>

const int stepsPerRevolution = 800;  // change this to fit the number of steps per revolution

// Creating Stepper Object for each motor
Stepper stepper1(stepsPerRevolution, 23, 22);
Stepper stepper2(stepsPerRevolution, 25, 24);
Stepper stepper3(stepsPerRevolution, 27, 26);
Stepper stepper4(stepsPerRevolution, 29, 28);
Stepper stepper5(stepsPerRevolution, 31, 30);
Stepper stepper6(stepsPerRevolution, 33, 32);
Stepper stepper7(stepsPerRevolution, 35, 34);
Stepper stepper8(stepsPerRevolution, 37, 36);
Stepper stepper9(stepsPerRevolution, 39, 38);
Stepper stepper10(stepsPerRevolution, 41, 40);
Stepper stepper11(stepsPerRevolution, 43, 42);
Stepper stepper12(stepsPerRevolution, 45, 44);
Stepper stepper13(stepsPerRevolution, 47, 46);
Stepper stepper14(stepsPerRevolution, 49, 48);


// create an array of stepper motor pointers:
Stepper* steppers[] = { &stepper1, &stepper2, &stepper3, &stepper4, &stepper5, &stepper6, &stepper7, &stepper8, &stepper9, &stepper10, &stepper11, &stepper12, &stepper13, &stepper14 };

void setup() {
  // set the speed for all steppers in a loop:
  for (int i = 0; i < 14; i++) {
    steppers[i]->setSpeed(200);
  }

  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // move each stepper forward and backward in a loop:
  for (int i = 0; i < 14; i++) {
    moveStepper(*steppers[i], 1, stepsPerRevolution);
    delay(200);
    moveStepper(*steppers[i], -1, stepsPerRevolution);
    delay(200);
  }
}

void moveStepper(Stepper stepper, int direction, int steps) {
  stepper.step(direction * steps);
}
A4988
A4988
A4988
A4988
A4988
A4988
A4988
A4988
A4988
A4988
A4988
A4988
A4988
A4988