My prior experience:
I've made a bunch of small arduino projects, am a professional programmer, but very much not an electrical engineer. Can wing it enough to get by (in most cases).
The task:
Make a 1 dimensional pong game. The idea is there would be a long strip of LEDs with a button at each end (+ a 7seg display for score, maybe a couple other embellishments). If possible, I'd like the LED strip to be LONG- hopefully go all the way around the room (the tentative location of this installation would be an arcade bar).
My problem:
Given the number of ins/outs on an arduino board, I'd need some non-trivial way to drive all the (hopefully hundreds of) LEDs. I've worked with multiplexers before, so understand the basics there. And I also have the added benefit of only really needing to light 1 at a time. (Though, if possible, I'd like to open up the possibility of driving more/all of them as much as I can, to allow for sweet 1D animation effects).
My current trajectory:
I assume "multiplexing" isn't nearly enough, and would result in an absolutely insane amount of soldering/wiring, plus I'd have a nest of wires going to/from each LED? So I saw on other parts of this forum the recommendation of using "WS2811 LED strips".
So I amazon'd it, and found
They all appear essentially identical. Unless someone has a specific horror story about one of the brands or something, I'll figure out which to buy myself. That said-
My questions:
- Are these an appropriate starting point?
- Is an arduino UNO appropriate/sufficient to drive this?
- What kind of interface does it use? Is the general idea "a serial signal is sent to the first LED chip, retransmitted to the next - to the next - to the next ... until it hits the correct address"?
- Is this property (individually addressable) functional in realtime?
4a .What kind of performance could I expect from them? 30fps? (where "f" = toggling one light off and another on)
4b. Are there performance implications for the depth of the light accessed? (That is- is addressing the 500th LED a slower endeavor than addressing the 1st?) - Are there other hints or directions you think I should explore?
Thanks!