Pages: [1]   Go Down
Author Topic: Controlling 8 stepper motors from one Arduino 328  (Read 656 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have been considering a new project for a small/simple/cheap lighting system

essentially one Arduino 328 could control 8 stepper motors and 8 lights/ledpanels/mirrors (to be decided)

- using shiftout, the Arduino would write to 5 8-bit shift registers (hc595)
- the first 4 shift registers would drive darlington outputs (ULN2803) which then drive the steppers directly
- the last shift register would drive the 8 light channels corresponding to the motors

DMX will be included but is not an issue as I have written lots of software based on MattHertels absolutely brilliant DMX library

I have experimented with "accelstepper" and it is a really well written library
I want to make the improvement to add the serial>stepper software section

Has anyone else had any experience with writing to stepper motors in a serial fashion rather than directly  pin2pin ?

:@)
Logged

while (z--) { snore; }

Offline Offline
Sr. Member
****
Karma: 7
Posts: 275
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am sure you could write some software and build some electronics to accomplish the task, however, here is a solution that will allow you to use servos without a headache. It has 16 servo channels and a small well written library.

http://www.adafruit.com/products/815
Logged


Copenhagen, Denmark
Offline Offline
Edison Member
*
Karma: 32
Posts: 1204
Have you testrun your INO file today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

that will allow you to use servos without a headache.
Continous rotation may be a requirement - servos dont have that, and if they do they have lost the positioning ability.

I have been considering a new project for a small/simple/cheap lighting system
essentially one Arduino 328 could control 8 stepper motors and 8 lights/ledpanels/mirrors (to be decided)
when I have looked into such stagelighting stuff, the insides are very simple - just like you describe. Apart from the profit stuff, the price for the bought units includes the development to get the mechanics sturdy and reliable and simple interfacing/cascading. (And that is not so easy as one would like to think)

Still it is ALWAYS great fun to do your own smiley

Quote
Has anyone else had any experience with writing to stepper motors in a serial fashion
Well, sorry, not me personally no. But I have tried "homegrown" drivers (like you propose, assumes you have unipolar steppers) and ready bought ones, and the latter is easier/faster with just step&dir pin, and microstepping comes included.

I see no obvious reason for your design not to work, as long as your step rate is "low enough". There may be software complications (or nice puzzle/challenges to solve smiley-wink ) for steppers to move smoothly at different rates. I would consider using two 1-16 decoders into the driver Step/Dir instead of a shift register. Pros and Cons.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am sure you could write some software and build some electronics to accomplish the task, however, here is a solution that will allow you to use servos without a headache. It has 16 servo channels and a small well written library.

http://www.adafruit.com/products/815

I am really looking at using Stepper motors rather than servos, although I have used servos to control mirrors in a lighting unit, the mirror movement was fast, but the deadband associated with servos made it all look a bit jumpy !!
Logged

while (z--) { snore; }

Offline Offline
Full Member
***
Karma: 0
Posts: 115
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Msquare, thanks for your input, perhaps I should consider other methods of driving the steppers, 1-16 is good, but It could work with 8 x 4bit parallel latches too, I was thinking perhaps the serial bit loading could be a bit slow of uP hungry :@)
Logged

while (z--) { snore; }

Pages: [1]   Go Up
Jump to: