Go Down

Topic: controling in between 100 and 255 outputs (Read 1 time) previous topic - next topic

PGT

Jan 16, 2013, 07:57 pm Last Edit: Jan 16, 2013, 08:00 pm by PGTBOOS Reason: 1
Ok i have need to control hundred or more digital outputs in a timed sense. (Art project)

I am not sure what kind of micro controller could do that, or if it should be a combination of multiple micro-controllers.
What i do know that each output would need to be controlled individual with some delay, but this delay will also rapidly change and be different for each output.
Overall it needs to work pretty fast too, like a blink of an eye

I am thinking of setting it all maybe let an arduino output some binary bits, but the arduino doesnt have enough pins.
Any ideas would be welcome on how to do this.

retrolefty


Ok i have need to control hundred or more digital outputs in a timed sense. (Art project)

I am not sure what kind of micro controller could do that, or if it should be a combination of multiple micro-controllers.
What i do know that each output would need to be controlled individual with some delay, but this delay will also rapidly change and be different for each output.
Overall it needs to work pretty fast too, like a blink of an eye

I am thinking of setting it all maybe let an arduino output some binary bits, but the arduino doesnt have enough pins.
Any ideas would be welcome on how to do this.


No micro-controller is going to have 255 independent output pins avalible. A popular method one could use is a series of serial in parallel output shift registers wired in series to gain the total number of output pins you require. Then in your arduino software you shift out the serial bit stream and clock pulses for the register array and when all bits are transferred out you pulse a latch pin wired to all the shift registers that transfer all the bits to their output pins at the same time. There is plenty of time to perform all that magic as a blink of the eye is a long time for a arduino running at 16 Mhz.

Lefty

DVDdoug

#2
Jan 16, 2013, 08:08 pm Last Edit: Jan 16, 2013, 08:17 pm by DVDdoug Reason: 1
You probably want a serial-in, parallel-out shift register.   The 74595 seems to be very popular.   I assume it (and the Arduino) will be fast-enough for you.

Serial data transmission does tend to be slower, because you'll have to "write" 100-255 times before you can update the parallel data.    However, Ethernet is serial, and and digital audio/video transmision is serial, SATA disc drives are serial...  So in the real world serial can be very-fast!

You feed-in the data serially one bit at a time, synchronized with a clock signal.  When all of the data has been shifted-into position, you send another signal to transfer & latch the data at the parallel outputs.   These devices can be chained together for many outputs.   (I'm using an LED driver that uses the same concept to drive 48 independently addressable LEDs from a 3-wire serial output.)

PGT

Interesting do you know what kind of shift registors (i never used them).. can be used, or know of a some sample with an arduino ?

MikMo

74hc595 for instance.

They are rather cheap.

Depending on what you are goint to control you might need other tuff as well. Like the Arduino pins you can't draw much current from the shift register pins.
Shift registers with high current draw capability are available but they are much more expencieve. You should alo conider your power upply needs.

If you tell a little about what you are going to control we could probably give better advice :-)

Go Up