I have a large shelf (like 5-10meters, or 15-30 feet long) which I want to put an LED in at every level. Thing like a positional system for a mini-library.
I have a litte problem to efficiently drive the LED's. So I figured wiring every LED to the main board would be a waste of cable.
I think that I could make a mini LED-driver board per self part, and then daisy chain these drivers and let them be controlled from the main board.
LED - Main Board --- LED-Self-Driver1 --- LED-Shelf-Driver2 --- ...
|- Shelf1, Row1 |- Shelf2, Row1 ...
|- Shelf1, Row2 |- Shelf2, Row2 ...
|- ... |- ...
A – or | should indicate the cable connection in the 'diagram' above. That would save me a lot of cable. 🙂
My question: What would be a good way to daisy chain these Arduino's? The space between the shelf parts (and the drivers) would be at most one meter and the chain connection should include the powering of the drivers. The connection speed should be around 1kbit's.
Would SPI do it? Maybe a Software SPI with slower frequency? How would you do it? Or is the connection scheme a stupid idea?
Thanks for reading and happy X-Mas 🙂
Best Answer
My approach would be to
An N-wire flatcable and associated connectors can drive (N/2)^2 LEDs in a normal matrix. 10-wire flatcable gives you 25 LEDs, 40-wire is good for 400 LEDs.
Charlieplexing gives you (N-1)^2 LEDs for N wires, but at the expense of more complex software and the requirement that you can not easily use buffers, so I would consider that only as a last resort.
If in this scheme cable cost would be dominant you could do some clever things with with the cabling so unused cables are not run to the places where they are not needed. More details are needed (number of LEDs, distances)
If you realy need distributed-drivers approach I would consider the Microchip MCP23017 or MCP23S17. They provide 16 I/O pins (enough for 64 LEDs in a matrix!) via a SPI or I2C intercae. 8 such devices can share a common bus.