- All products
- Sensors & Modules
- LED Module
- LED Circle RGB 24 LED NEOPIXEL WS2812 5050 Board
- LED Module
Features
- 24 individually addressable RGB LEDs arranged in a circular layout.
- Integrated WS2812 driver IC inside each 5050 LED.
- NeoPixel-compatible single-wire digital interface.
- Uniform brightness and consistent color output.
- Supports cascading multiple WS2812 modules.
- Data transfer speeds up to 800Kbps.
- Compatible with common NeoPixel libraries.
Specifications
- Operating Voltage: 5V DC
- LED Type: 5050 RGB with integrated WS2812 IC
- Number of LEDs: 24
- Brightness Resolution: 256 levels per color
- Color Depth: 24-bit (16,777,216 colors)
- Communication Interface: Single-wire digital
- Data Rate: Up to 800Kbps
Pinout
- GND – Ground connection
- VCC – 5V power supply
- IN – Digital data input from microcontroller
- OUT – Digital data output for cascading modules
Arduino Wiring

- VCC → 5V on Arduino
- GND → GND on Arduino
- DIN → Digital Pin (example: D6)
- DOUT → Optional cascading output
Arduino Example Code
Installation of Library
To install the Adafruit_NeoPixel library:
- Open Arduino IDE → Sketch → Include Library → Manage Libraries.
- Search for Adafruit NeoPixel.
- Click Install.
- Alternatively, download ZIP from GitHub and install via Sketch → Include Library → Add .ZIP Library.
#include <Adafruit_NeoPixel.h>
#define LED_PIN 6
#define NUMPIXELS 24
Adafruit_NeoPixel strip(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
#define DELAY_MS 50
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void colorWipe(uint32_t color, int wait) {
for (int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, color);
strip.show();
delay(wait);
}
}
uint32_t Wheel(byte pos) {
if(pos < 85) {
return strip.Color(pos * 3, 255 - pos * 3, 0);
} else if(pos < 170) {
pos -= 85;
return strip.Color(255 - pos * 3, 0, pos * 3);
} else {
pos -= 170;
return strip.Color(0, pos * 3, 255 - pos * 3);
}
}
void rainbowCycle(int wait) {
for(long j=0; j<256*5; j++) {
for(int i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}
void loop() {
colorWipe(strip.Color(255, 0, 0), DELAY_MS);
colorWipe(strip.Color(0, 255, 0), DELAY_MS);
colorWipe(strip.Color(0, 0, 255), DELAY_MS);
rainbowCycle(20);
}
Applications
- Decorative and ambient lighting
- LED animations and circular visual effects
- Status indicators and dashboards
- Wearable electronics
- DIY and embedded projects
Resources
Features
- 24 individually addressable RGB LEDs arranged in a circular layout.
- Integrated WS2812 driver IC inside each 5050 LED.
- NeoPixel-compatible single-wire digital interface.
- Uniform brightness and consistent color output.
- Supports cascading multiple WS2812 modules.
- Data transfer speeds up to 800Kbps.
- Compatible with common NeoPixel libraries.
Specifications
- Operating Voltage: 5V DC
- LED Type: 5050 RGB with integrated WS2812 IC
- Number of LEDs: 24
- Brightness Resolution: 256 levels per color
- Color Depth: 24-bit (16,777,216 colors)
- Communication Interface: Single-wire digital
- Data Rate: Up to 800Kbps
Pinout
- GND – Ground connection
- VCC – 5V power supply
- IN – Digital data input from microcontroller
- OUT – Digital data output for cascading modules
Arduino Wiring

- VCC → 5V on Arduino
- GND → GND on Arduino
- DIN → Digital Pin (example: D6)
- DOUT → Optional cascading output
Arduino Example Code
Installation of Library
To install the Adafruit_NeoPixel library:
- Open Arduino IDE → Sketch → Include Library → Manage Libraries.
- Search for Adafruit NeoPixel.
- Click Install.
- Alternatively, download ZIP from GitHub and install via Sketch → Include Library → Add .ZIP Library.
#include <Adafruit_NeoPixel.h>
#define LED_PIN 6
#define NUMPIXELS 24
Adafruit_NeoPixel strip(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);
#define DELAY_MS 50
void setup() {
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void colorWipe(uint32_t color, int wait) {
for (int i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, color);
strip.show();
delay(wait);
}
}
uint32_t Wheel(byte pos) {
if(pos < 85) {
return strip.Color(pos * 3, 255 - pos * 3, 0);
} else if(pos < 170) {
pos -= 85;
return strip.Color(255 - pos * 3, 0, pos * 3);
} else {
pos -= 170;
return strip.Color(0, pos * 3, 255 - pos * 3);
}
}
void rainbowCycle(int wait) {
for(long j=0; j<256*5; j++) {
for(int i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}
void loop() {
colorWipe(strip.Color(255, 0, 0), DELAY_MS);
colorWipe(strip.Color(0, 255, 0), DELAY_MS);
colorWipe(strip.Color(0, 0, 255), DELAY_MS);
rainbowCycle(20);
}
Applications
- Decorative and ambient lighting
- LED animations and circular visual effects
- Status indicators and dashboards
- Wearable electronics
- DIY and embedded projects