Go Down

Topic: New stepper motor library with accelerations etc (Read 12908 times) previous topic - next topic


I have just made available the AccelStepper library.

AccelStepper significantly improves on the standard Arduino Stepper library in several ways:

Supports acceleration and deceleration

Supports multiple simultaneous steppers, with independent concurrent stepping on each stepper

API functions never delay() or block

Supports 2 and 4 wire steppers

Very slow speeds are supported


Extensive API

Download from http://www.open.com.au/mikem/arduino/AccelStepper/


Very nice and very useful. Thank you for sharing your contribution.

I think the best attribute of the Arduino platform is all the software library and project examples that the community shares with the user base.



Is ther e a way to use this to control a large amount of tiny stepper motors...like almost 200?


200 steppers: in principle yes, but I cant think of any arduinos with 800 digital output pins :-)



It may be off-topic, but what does "Supports 2 and 4 wire steppers" mean? I thought the smallest number of stepper motor wires is 4?


A 2 wire motor is one that is attached to a controller and just uses step and direction pulses.
Where as a 4 wire motor is one where the controller controls the individual ends of the two coils.


But still, it's not "2 wire stepper motor", it's "X-wire motor with controller" :)
OK, thanks!


But still, it's not "2 wire stepper motor"

True but that's what it is called.


"200 steppers: in principle yes, but I cant think of any arduinos with 800 digital output pins "

how about multiplexing the steppers into a grid?


I guess as long as your multiplexor holds the value and you can change it quick enough to stop the motor stuttering then it should work.

I noticed most folk use a decoding chip to control the phasing of the steppers. Why can't the Arduino do the decoding and provide the correct phasing? Obviously the outputs would have to go through a driver of some sorts but I'm not sure why the decoder is the popular route?


I noticed the pulse rate is limited to 1000 steps/sec which is a bit slow for my application. Is this a limitation of the Arduino board or the software and is there any way to improve this?



Its a limitation due to the fact that I use millis() to compute the time of each step, so its limited to max 1000 per sec.


Hmmmm- I guess it wouldn't be as simple as just changing to micros()?


No, I would expect to have to deal with the micros() count wrapping etc.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131