Go Down

Topic: New stepper motor library with accelerations etc (Read 11651 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