Go Down

Topic: Controlling 8 stepper motors from one Arduino 328 (Read 748 times) previous topic - next topic

mcnobby

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 ?

:@)
while (z--) { snoreEvenLouder(); }
www.smartshow.lighting - www.dmx512.lighting

Headroom

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
http://trippylighting.com

http://ledshield.wordpress.com/

Msquare


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 :)

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 ;) ) 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.

mcnobby


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 !!
while (z--) { snoreEvenLouder(); }
www.smartshow.lighting - www.dmx512.lighting

mcnobby

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 :@)
while (z--) { snoreEvenLouder(); }
www.smartshow.lighting - www.dmx512.lighting

Go Up