// TEST OF ACCELSTEPPER LIBRARY
#include <AccelStepper.h>
// Define some steppers and the pins the will use
AccelStepper stepper1(AccelStepper::FULL4WIRE, 2, 3, 4, 5);; // Defaults to AccelStepper::FULL4WIRE (4 pins) on 2, 3, 4, 5
AccelStepper stepper2(AccelStepper::FULL4WIRE, 6, 7, 8, 9);
//const long steps_turn_M1 = 512; // Number of steps to make 1 complete turn of the 28BYJ48 stepper motor 1
//const long steps_turn_M2 = 512; // Number of steps to make 1 complete turn of the 28BYJ48 stepper motor 2
//long current_Position1;
//long current_Position2;
void setup()
{
stepper1.setMaxSpeed(200.0);
stepper1.setAcceleration(100.0);
stepper2.setMaxSpeed(200.0);
stepper2.setAcceleration(100.0);
}
void loop()
{
moveForward();
delay(500);
moveBackward();
delay(500);
moveLeft();
delay(500);
moveRight();
delay(500);
}
void moveForward()
{
stepper1.moveTo(stepper1.currentPosition()+512);
stepper2.moveTo(stepper2.currentPosition()+512);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}
void moveBackward()
{
stepper1.moveTo(stepper1.currentPosition()-512);
stepper2.moveTo(stepper2.currentPosition()-512);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}
void moveLeft()
{
stepper1.moveTo(stepper1.currentPosition()-512);
stepper2.moveTo(stepper2.currentPosition()+512);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}
void moveRight()
{
stepper1.moveTo(stepper1.currentPosition()+512);
stepper2.moveTo(stepper2.currentPosition()-512);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}