// MultiStepper.pde// -*- mode: C++ -*-// Use MultiStepper class to manage multiple steppers and make them all move to // the same position at the same time for linear 2d (or 3d) motion.
#include <AccelStepper.h>#include <MultiStepper.h>
// EG X-Y position bed driven by 2 steppers// Alas its not possible to build an array of these with different pins for each :-(AccelStepper stepper1(AccelStepper::FULL4WIRE, 2, 3, 4, 5);AccelStepper stepper2(AccelStepper::FULL4WIRE, 8, 9, 10, 11);
// Up to 10 steppers can be handled as a group by MultiStepperMultiStepper steppers;
void setup() { Serial.begin(9600);
// Configure each stepper stepper1.setMaxSpeed(100); stepper2.setMaxSpeed(100);
// Then give them to MultiStepper to manage steppers.addStepper(stepper1); steppers.addStepper(stepper2);}
void loop() { if (/*new target positions are available*/) { long positions[2]; // Array of desired stepper positions
//MultiStepper::moveTo takes absolute positions only positions[0] = stepper1.currentPosition() + deltaX; positions[1] = stepper2.currentPosition() + deltaY;
steppers.moveTo(positions); }
steppers.run();}Best regards
Stijn