Pages: [1] 2 3   Go Down
Author Topic: New stepper motor library with accelerations etc  (Read 10693 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 2
Posts: 81
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
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

Subclassable

Extensive API

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

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17301
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Lefty
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Just what I needed! smiley-grin
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Jr. Member
**
Karma: 2
Posts: 81
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Cheers.
Logged

Siepraw, PL
Offline Offline
Newbie
*
Karma: 0
Posts: 45
No time, stroking Cat...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 634
Posts: 34547
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

A 2 wire motor is one that is attached to a controller and just uses step and direction pulses.
http://www.8051projects.net/stepper-motor-interfacing/stepper-motor-connections.php
Where as a 4 wire motor is one where the controller controls the individual ends of the two coils.
Logged

Siepraw, PL
Offline Offline
Newbie
*
Karma: 0
Posts: 45
No time, stroking Cat...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 634
Posts: 34547
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

True but that's what it is called.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

"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?
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 94
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

St. Louis, Missouri
Offline Offline
Sr. Member
****
Karma: 1
Posts: 279
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?

Thanks,
Greg
Logged

0
Offline Offline
Jr. Member
**
Karma: 2
Posts: 81
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

St. Louis, Missouri
Offline Offline
Sr. Member
****
Karma: 1
Posts: 279
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


























Logged

0
Offline Offline
Jr. Member
**
Karma: 2
Posts: 81
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1] 2 3   Go Up
Jump to: