Introduction: WS2812 LED Implementation
This goal of this Instructable is to provide you with some notes on the installation/implementation of a string of 430 WS2812 LED packages.
In case you didn't know, the WS2812 is an awesome little RGB (red, green, blue) LED package that has a little controller chip built right in that basically does everything except wash the windows.
There are plenty of folks out there who have already done all the heavy lifting for us in terms of getting a bunch of WS2812s up and running in no time, with no fuss or muss (SparkFun, Adafruit, etc.) using a variety of controllers. I was able to get my first string of these little beauties up an running with an Arduino in about five minutes by simply downloading/installing a library and example sketch.
If you have any questions on the programming aspect, let me know, and I'll do what I can to try and help you.
There are also many places that can provide you with WS2812s connected in various ways, e.g., in a long strip, on a circular board, or simply in bulk. Prices may vary, so consider doing some shopping around.
Step 1: POWER!!!
The thing about lighting up 430 WS2812s is that you are potentially lighting up 430 x 3 LEDs, since there is one red LED, one green LED, and one blue LED in each package.
We all know that LEDs don't use that much power. Even the high brightness LEDs don't use as much power as compared to some of their other luminous cousins, such as the incandescent light bulb.
The specification sheet for the WS2812 indicates that it only takes about 20mA at around 3VDC to light up one of the LEDs (depending on which color... red requires less voltage, blue requires more voltage) .
In actuality, you provide 5VDC to a WS2812, but that's neither here nor there.
In terms of current, 20mA ain't nothing.
But, wait... we're talking about 430 x 3 LEDs.
Um, that's 1290 LEDs!
1290 LEDs @ 20mA per LED equals a whopping 25.8A! That's a lot of current.
Luckily for us, the numbers on specification sheets are theoretical, or estimates, or guidelines, or something.
Step 2: CONTROL!!!
Here you can see how simple the controller setup is for these LEDs.
There are only three connections required on the LEDs: +5VDC, Common, Data.
Wouldn't you know that there are only three connections required on the Auduino being used as the controller: +5VDC, Common, Data.
Step 3: POWER and CONTROL!!!
Well, we certainly don't need to supply 25.8A to our little Arduino, so you can use just about any old wire for the connections for Arduino power and the data line between the Arduino and the LEDs.
Now, according to our friends who put together the NEC, we are going to need 12AWG or 10AWG in order to handle that 25.8A needed to power all of our LEDs. Remember, for our purposes, current is current. The fact that we are at 5VDC doesn't let us off the hook.
That's some pretty hefty wire!
Um, allow me to do a sanity check for y'all...
Step 4: Somewhere Over the Rainbow
So, here are the 430 WS2812s powered up. The rainbow spectrum slowly cycles from right to left. With this pattern, most of the LEDs are on, but none of the packages have all three LEDs 100% powered.
Step 5: 1.21 Jiggawatts!
It looks like we are a little over 6A to power the 430 WS2812s in a rainbow spectrum pattern. That's 6A x 5VDC = 30ish watts.
Not too bad!
Step 6: These Go to Eleven...
If each of the red, green, and blue LEDs are powered at 100%, we end up with a nice white light.
Step 7: Power to the People!
100% bumps us up to right around 10A. That's 10A x 5VDC = 50ish watts.
Still not too bad!
Step 8: Adding a Little Extra
One final note on getting all the LEDs to light up...
The flex circuit strip that these WS2812s are mounted on doesn't actually have enough copper on it to handle the current required to light a strip of 430 of them. If you were to only have the 5VDC connected at one end of the strip (like I did initially) you would see that about half of the WS2812s wouldn't even turn on.
Well, there is also the whole voltage drop thing that happens for the same reason, but it all depends on how you want to look at it, so let's just talk about power drop, okay?
One way around the power delivery limitations of the flex circuit is to supply the 5VDC to multiple points along the strip. To allow enough juice to get to all the WS2812s, I ran 18AWG (good up to around 14A... so we are covered even if we assume 125% of the maximum current of 10A, or 12.5A) along the entire length of the 430 WS2812s, and connected them at the locations shown by the arrows, in addition to the connections at the beginning of the strip.
Just remember that there is still only one place where the data is connected to the strip (the DIN connection on the first WS2812). Well, I suppose you could have multiple data connection points if you wanted different sections of the strip to be controlled separately for some crazy reason.