WS2812 Breakout Hookup Guide
The addressable WS2812 and WS2812B are unassuming RGB LEDs with an integrated control circuit hidden underneath. We love the simplicity of this little IC/LED combo. It's at the heart of a number of products.
To name a few, the WS2812B is included in the simple WS2812B Breakout Board.
The LilyPad Pixel shares the same circuit as the breakout board, but it comes on a circular, purple LilyPad board. These are perfect for sewing onto clothing or other fabric, and embedding into an e-textiles project.
Looking for smaller, higher density strips, or ones that emit on the side of the strip? The WS2812B's can also be manufactured in smaller packages such as the ones listed below.
Fairy lights connect each individual LED with strands of wire. These are more flexible compared to the flexible PCBs that are used in LED strips. These can bend easier and are great for wearable projects if you need to connect a lot of addressable LEDs. Just sew the wire against your fabric to hold down the fairy lights. These are easy to wrap around an object for decor or prop.
Matrices, Rings, and Stick
Depending on the project, they can also be populated on PCBs as a matrix, ring, or stick. These can be useful for marquees or adding unique animations to your project!
Warm White, Cool White, and Amber
Looking for a more natural white instead of mixing RGB? There are also WS2812's that have warm white, cool white, and amber color. Add ambient or task lighting to your projects with the tri-color strips.!
Lastly, if you require WS2812B LEDs in through-hole form, they are also available as a through-hole package. The size of the bulb can either be 8mm or 5mm. The LEDs can be diffused or clear depending on how they were manufactured: Diffused 8mm (5 Pack), Diffused 5mm (5 Pack), and Clear 5mm (5 Pack).
What makes the WS2812B really special is the way its controlled. The IC embedded into the LED communicates via a very unique one-wire interface. With the help of some libraries, they're really very easy to control. Plus they're chain-able -- the output of one LED can be connected to the input of another to create strips of hundreds of LEDs. The more boards you have linked together, the fancier your animations can be!
In this tutorial we're going to get you familiar with the workings of the WS2812 and WS2812B. We'll go over some of the ways you might want to hook up to the breakout board, LilyPad, or strips. And we'll close the tutorial out with some example Arduino code.
WS2812-Based LED Board or Strip
Stating the obvious: you'll need a WS2812-based board or strip. The more the merrier! In the example hookup, we'll be linking together five breakout boards, but the example should be adaptable to the other WS2812-based products. Grab however many you think you'll need for your project, regardless of how many you have, it's not enough.
Aside from the star of the show, you'll also need a microcontroller. Something that can send the series of 1's and 0's used to control the LEDs. Our go-to is the classic Arduino Uno, but any Arduino board should do.
If you want to get really crazy, hackaday demonstrates how to power 1000 NeoPixels with the Arduino’s limited RAM.
Or you can try to adapt the example code to your favorite microcontroller. Teensy development boards are an excellent choice when using a large number of WS2812 LEDs.
You'll also need some way to connect between the board and an Arduino. You could use a combination of male headers and breadboard (solderless or solderable). Or you could just go with a few pieces of hookup wire or 3-pin JST-SM pigtail connectors.
In order to get a good, solid, electrically-sound connection to the breakout boards, you'll need to solder to the pins. That means you'll need at least a basic soldering iron, solder, and general soldering accessories. Check out our how to solder tutorial for help, if this is you first time soldering.
These boards aren't too hard to use. If you've done anything with Arduino before, you'll be prepared to work with the WS2812. If you're not exactly sure what this "Arduino" thing is, or if you're not familiar with the topics below, consider reading their tutorials: