Index
Introduction
The WS2812 breakout board features individually addressable RGB LEDs, allowing you to create stunning lighting effects and animations. With a simple connection to an Arduino, you can control the color and brightness of each LED independently, making it ideal for various projects, from decorative lighting to interactive displays.
Required Components
- Arduino UNO R3 SMD
- WS2812 breakout board (with WS2812B LEDs)
- Jumper wires
- Breadboard (optional)
- Power supply (if using multiple LEDs)
Pinout
Circuit Diagram / Wiring
- WS2812 5V → 5V (Arduino)
- WS2812 GND → GND (Arduino)
- WS2812 DI (Data IN) → Pin D6 (Arduino)
Note: If using many WS2812 LEDs, consider using an external power supply to avoid drawing too much current from the Arduino.
Arduino Code / Programming
To control the WS2812 breakout board, you will need the Adafruit NeoPixel library. Install it via the Arduino Library Manager.
#include <Adafruit_NeoPixel.h>
#define PIN 6 // Pin connected to Data In
#define NUM_LEDS 1 // Number of LEDs in the strip
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin(); // Initialize the strip
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
for(int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(255, 0, 0)); // Red
strip.show();
delay(100);
strip.setPixelColor(i, strip.Color(0, 0, 0)); // Turn off the LED
}
for(int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0, 255, 0)); // Green
strip.show();
delay(100);
strip.setPixelColor(i, strip.Color(0, 0, 0)); // Turn off the LED
}
for(int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0, 0, 255)); // Blue
strip.show();
delay(100);
strip.setPixelColor(i, strip.Color(0, 0, 0)); // Turn off the LED
}
}
Explanation of the Code
- Library Inclusion: The code includes the Adafruit NeoPixel library, which simplifies controlling the WS2812 LEDs.
- Pin Definition: Define the pin connected to the data input of the WS2812 board.
- Setup Function: Initializes the strip and sets all pixels to off.
- Loop Function: Cycles through each LED, turning it on in red, green, and blue, with a delay in between.
Testing and Troubleshooting
- Check Connections: Ensure all wiring is correct and secure.
- Power Supply: If the strip is not lighting up or flickering, make sure the power supply is adequate.
- Library Installation: Verify that the Adafruit NeoPixel library is properly installed.