// AFMotor_MultiStepper.pde // -*- mode: C++ -*- // // Control both Stepper motors at the same time with different speeds // and accelerations. // Requires the AFMotor library (https://github.com/adafruit/Adafruit-Motor-Shield-library) // Caution, does not work with Adafruit Motor Shield V2 // See https://github.com/adafruit/Adafruit_Motor_Shield_V2_Library // for examples that work with Adafruit Motor Shield V2. #include #include // two stepper motors one on each port AF_Stepper motor1(200, 1); AF_Stepper motor2(200, 2); // 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); void setup() { stepper1.setMaxSpeed(200.0); stepper1.setAcceleration(100.0); stepper1.moveTo(24); stepper2.setMaxSpeed(300.0); stepper2.setAcceleration(100.0); stepper2.moveTo(1000000); } void loop() { // Change direction at the limits if (stepper1.distanceToGo() == 0) stepper1.moveTo(-stepper1.currentPosition()); stepper1.run(); stepper2.run(); }