This is a pack of 10 breadboard-friendly RGB LED modules featuring WS2812B smart LEDs. Each WS2812B has a control IC that gives you 256 intensity levels for each of the red, green and blue channels. This allows for 24-bit color, i.e. more than 16 million color possibilities.
The modules are instructed via a special serial protocol that allows you to daisy-chain modules together and control them all from a single microcontroller, individually or all together. They do require strict timing, however. Real-time processors like Arduino, OLinuXino or Propeller will work, but things like BASIC Stamp, Raspberry Pi or pcDuino will not be able to communicate reliably.
You must power the modules with 5V DC. They will work with a microcontroller that uses a 3.3V interface, provided you supply an external 5V to the modules.
The boards are designed to make it easy to string them together. You can just connect the three lines straight across from one board to the next — SO to SI, 5V to 5V, and GND to GND.
Caution: These LEDs are very bright. Avoid looking directly at them from close range.
RGB LED Breakout Board Features
- Can be strung together to make an array of individually addressable lights
- Control all LEDs in a chain with a single I/O pin
- 24-bit color, so each module can display more than 16 million colors
- Breadboard-friendly size with 0.1-inch header spacing
- Voltage Requirement: 5V DC
- Current Requirement: Up to 50mA
- Communication: Custom asynchronous serial
- Dimensions: 0.5 × 0.4 inches (1.27 × 1.02 cm)
- Operating Temperature: -13 to +172 °F (-25 to +80 °C)
- Pin headers included (loose)
Communication Interface The communication interface between a microcontroller and the WS2812B is unusual. It's one wire, but it's not like a standard UART serial interface. This interface is very time-specific. Both a logic 0 and a logic 1 require a square pulse; it's the length of the pulse that defines which it is. See the timing diagram below:
The data are sent in a sequence containing 24 of those bits — 8 bits for each color — followed by a low Reset pulse of at least 50µs. The channels are in the order Green, Red, Blue with high bit first, i.e. G7, G6, G5, ..., G0, R7, ..., R0, B7, ..., B0.
The larger the value of a specific color is, the brighter it will be. If every color is set to 0, the LED will be off. If every color is set to max (255) the LED will be brightest white.
Because the interface is so time-specific, you will need a real-time processor like an Arduino or Propeller to run the LEDs. Microprocessors like those on the Raspberry Pi or pcDuino can't give you a reliably-timed pulse; even if one bit is less than a microsecond off, you could end up with a very different color than what you desired.
RGB LED Breakout Board Resources