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 ?
:@)
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.
Headroom:
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.
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)
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
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.
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.
Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface [PCA9685] : ID 815 : $14.95 : Adafruit Industries, Unique & fun DIY electronics and kits
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 !!
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 :@)