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 eyeI 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.
centipede shield ?- http://macetech.com/store/index.php?main_page=product_info&products_id=23 -
If very long headers are used to allow two Centipede Shields to be stacked, then by changing the ADDRESS jumper it is possible to address 128 I/O pins.
Or parallel strings of shift registers in series.Than one doesn't need to shift out 32 bytes of data every time.Use 4 strings perhaps, and only shift out 8 bits to update one string.Use SPI.transfer( ) and 4 chip selects, 1 per string.
digitalWrite(controlSS, LOW);SPI.transfer(stringSelectData); // 1 of 8 outputs lowdigitalWrite(controlSS, HIGH); // 1 of 8 strings now has it latch pin low, ready for dataSPI.transfer( stringX[byte0]);SPI.transfer( stringX[byte1]); // do this part a little smarter - make the string called an array, and select it based onSPI.transfer( stringX[byte2]); // the timing criteria going onSPI.transfer( stringX[byte3]); // maybe even repeat this entire example 8 unique times, each with its own unique time check to kick it offdigitalWrite(controlSS, LOW);SPI.transfer(0xff); // all outputs highdigitalWrite(controlSS, HIGH); // data is latched into 4 registers
I wonder if i would use SPI and send data to control this all what would be the shortest time to send such control information ?.
If i am right, then SPI is a kind of cable on which multiple (arduino?) devices can connect and each get a number.