When we're working with LEDs, we often like to control their state (on/off), brightness, and color. There are many, many different ways of going about this, but none are as compact a solution as the WS281x family of RGB LEDs and driver ICs. The most popular option, the WS2812B, comes in a tiny 5mm×5mm surface-mount package, containing 3 super bright LEDs (Red, Green, and Blue) and a compact driver circuit based on the WS2811 IC. The great thing about this driver is that only requires one data input to control the state, brightness, and color of the 3 LEDs.
We wrote an easy-to-follow tutorial on Instructables to use 1-bit LEDs with an Arduino UNO:
The embedded constant-current LED driver (WS2811) is remarkably useful for two reasons:
- A constant current of ~18mA will drive each LED even if the voltage varies.
- There is no need to add current-limiting resistors (a.k.a choke resistors) between the power supply and the LEDs.
All we need is a very simple design to provide Power, Ground, and 1 Control Input in order to create an awesome lighting display consisting of not one, but a whole array of RGB LEDs. That's right! By connecting the Data Out pin of one of these LEDs, to the Data In pin of another, we can drive them both independently with the same Control Input! If it's not obvious how to do this, do not be troubled, by the end of this Instructable you'll be well on your way to adding WS2812 to any project you want!