Electronic – arduino – ‘long’ distance arduino daisy chain

arduinoled

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

  • put the LEDs in a matrix (with resistors on one of the axis of course),
  • run a continuous flatcable from the arduino and between the LEDs
  • crimp a flatcable connector onto the cable at each LED position
  • plug the LED into the fatcable connector (might be a bit unreliable because the LED pins are too thin), or put a boxed header onto the connector and solder the LED onto its pins

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.