// Using the AccelStepper library.
// AccelStepper: https://www.airspayce.com/mikem/arduino/AccelStepper/
// Copyright (C) 2009 Mike McCauley
//
#include <AccelStepper.h>
// Define the objects with pin numbers
AccelStepper stepper[10] =
{
AccelStepper(AccelStepper::DRIVER, 0, 1),
AccelStepper(AccelStepper::DRIVER, 2, 3),
AccelStepper(AccelStepper::DRIVER, 4, 5),
AccelStepper(AccelStepper::DRIVER, 6, 7),
AccelStepper(AccelStepper::DRIVER, 8, 9),
AccelStepper(AccelStepper::DRIVER, 10, 11),
AccelStepper(AccelStepper::DRIVER, 12, 13),
AccelStepper(AccelStepper::DRIVER, A5, A4),
AccelStepper(AccelStepper::DRIVER, A3, A2),
AccelStepper(AccelStepper::DRIVER, A1, A0),
};
unsigned long previousMillis;
const unsigned long interval = 1000UL;
void setup()
{
// Set limits for the stepper motors.
for( int i=0; i<10; i++)
{
stepper[i].setMaxSpeed(200.0);
stepper[i].setAcceleration(100.0);
}
// Move all the steppers to a certain position
// The steppers will only move with the .run() call,
// so these are just initial values.
for( int i=0; i<10; i++)
{
stepper[i].moveTo(i * 100);
}
}
void loop()
{
unsigned long currentMillis = millis();
if( currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
// random move a random stepper to a random position
int i = random(0, 11);
long steps = random(-100,100);
stepper[i].move(steps);
}
// The library needs to update the steppers as many times as possible.
for( int i=0; i<10; i++)
{
stepper[i].run();
}
}