// 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);
/*
#define btn_forward 14 // define buttons
#define btn_left 15
#define btn_right 16
#define btn_backward 17
#define btn_engage 18
*/
int value0 = 0; // variables to detect button pressing
int value1 = 0;
int direction[11] = {0,0,0,0,0,0,0,0,0,0}; // vector diretion to store 10 buttons
const long steps_turn = 512; // Number of steps to make 1 complete turn of the 28BYJ48 stepper motor
//const long steps_half_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);
/*
pinMode (btn_forward, INPUT);
pinMode (btn_left, INPUT);
pinMode (btn_right, INPUT);
pinMode (btn_backward, INPUT);
pinMode (btn_engage, INPUT);
*/
}
void loop()
{
moveForward();
delay(500);
moveBackward();
delay(500);
moveLeft();
delay(500);
moveRight();
delay(500);
}
void moveForward()
{
stepper1.moveTo(stepper1.currentPosition()+steps_turn);
stepper2.moveTo(stepper2.currentPosition()+steps_turn);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}
void moveBackward()
{
stepper1.moveTo(stepper1.currentPosition()-steps_turn);
stepper2.moveTo(stepper2.currentPosition()-steps_turn);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}
void moveLeft()
{
stepper1.moveTo(stepper1.currentPosition()-steps_turn);
stepper2.moveTo(stepper2.currentPosition()+steps_turn);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}
void moveRight()
{
stepper1.moveTo(stepper1.currentPosition()+steps_turn);
stepper2.moveTo(stepper2.currentPosition()-steps_turn);
while (stepper1.distanceToGo() != 0 & stepper2.distanceToGo() != 0)
{
stepper2.run();
stepper1.run();
}
}