I have modified an existing example from the AccelStepper library, but as soon as i try and remove the acceleration part of the sketch it has a fit:
// MultiStepper // -*- mode: C++ -*- // // Control both Stepper motors at the same time with different speeds // and Speeds. // Requires the AFMotor library (https://github.com/adafruit/Adafruit-Motor-Shield-library) // And AccelStepper with AFMotor support (https://github.com/adafruit/AccelStepper) // Public domain!#include <AccelStepper.h>
#include <AFMotor.h>// two stepper motors one on each port
AF_Stepper motor1(200, 1);
AF_Stepper motor2(200, 2);int Move = 0;
// you can change these to DOUBLE or INTERLEAVE or MICROSTEP!
// wrappers for the first motor!
void forwardstep1() {
motor1.onestep(FORWARD, SINGLE);
}
void backwardstep1() {
motor1.onestep(BACKWARD, SINGLE);
}
// wrappers for the second motor!
void forwardstep2() {
motor2.onestep(FORWARD, SINGLE);
}
void backwardstep2() {
motor2.onestep(BACKWARD, SINGLE);
}// Motor shield has two motor ports, now we’ll wrap them in an AccelStepper object
AccelStepper stepper1(forwardstep1, backwardstep1);
AccelStepper stepper2(forwardstep2, backwardstep2);
const int relay = 2;
const int button = 13; //button holds the sketch in setup, until pressed. This stops the motors from moving under USB power while uploading.void setup()
{
pinMode (relay, OUTPUT);
pinMode (button, INPUT);
Serial.begin(9600);
Serial.println(“ready”);
while (digitalRead (button) == HIGH){ // stops script. Its waiting for a button press (LOW on “button”)
}
digitalWrite (relay, HIGH);
Serial.println(“running”);stepper1.setSpeed(50);
stepper2.setSpeed(50);
}void loop()
{
Move = Move +10;
Serial.println(“Up”);
stepper1.move(Move);
stepper2.move(Move);
if (stepper1.distanceToGo() > 0) {
stepper1.run();
stepper2.run();
}
Move = Move +10;
Serial.println(“Right”);
stepper1.move(Move);
stepper2.move(Move*-1);
if (stepper1.distanceToGo() > 0) {
stepper1.run();
stepper2.run();
}
Move = Move +10;
Serial.println(“Down”);
stepper1.move(Move*-1);
stepper2.move(Move*-1);
if (stepper1.distanceToGo() > 0) {
stepper1.run();
stepper2.run();
}
Move = Move +10;
Serial.println(“Left”);
stepper1.move(Move*-1);
stepper2.move(Move);
if(stepper1.distanceToGo() > 0) {
stepper1.run();
stepper2.run();
}
}