I changed the step type for both motors to MICROSTEP
Also changed from setMaxSpeed() to setSpeed() [I don't need accel/decelerations, constant speed is fine]
and from runSpeedToPosition() to run()
Please have a look again. Thanks for your continuous support.
Code: Select all
#include <AccelStepper.h>
#include <MultiStepper.h>
#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_MS_PWMServoDriver.h"
Adafruit_StepperMotor *myStepper1 = AFMStop.getStepper(200, 1);
Adafruit_StepperMotor *myStepper2 = AFMStop.getStepper(200, 2);
// wrappers for the first motor!
void forwardstep1() {
myStepper1->onestep(FORWARD, MICROSTEP);
}
void backwardstep1() {
myStepper1->onestep(BACKWARD, MICROSTEP);
}
// wrappers for the second motor!
void forwardstep2() {
myStepper2->onestep(FORWARD, MICROSTEP);
}
void backwardstep2() {
myStepper2->onestep(BACKWARD, MICROSTEP);
}
AccelStepper stepper1(forwardstep1, backwardstep1);
AccelStepper stepper2(forwardstep2, backwardstep2);
MultiStepper steppers;
void setup() {
Serial.begin(9600);
// Configure each stepper
stepper1.setSpeed(100);
stepper2.setSpeed(100);
// Then give them to MultiStepper to manage
steppers.addStepper(stepper1);
steppers.addStepper(stepper2);
}
void loop() {
long positions[2]; // Array of desired stepper positions
positions[0] = 1000;
positions[1] = 1000;
steppers.moveTo(positions);
steppers.run(); // Blocks until all are in position
delay(1000);
// Move to a different coordinate
positions[0] = -100;
positions[1] = 100;
steppers.moveTo(positions);
steppers.run(); // Blocks until all are in position
delay(1000);
}