이 번에 ESP32에서 WS2812 RGB LED 12개 원형 모듈 제어한다.
보통 1m~5m 판매하는데 1m에 들어 거는 LED 갯수에 따라서 가격이 틀리다.
원래는 5V전원을 따로 공급해야 테스트용으로 간편하게 하기 위해서
EPS32 Vin 핀에 연결한다.
라이브러이도 여러가지 있지만 여기서 Adafruit_NeoPixel 를 사용했다.
※ 준비물
ESP32 Dev Board
WS2812 RGB LED 12개 원형
점퍼케이블(F-F) x 3
※ 핀 연결
ESP LED
Vin V5
GND GND
D13 Din
※ 라이브러리

※ 소스
/*
* 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32/esp32-ws2812b-led-strip
*/
#include <Adafruit_NeoPixel.h>
#define PIN_WS2812B 13 // ESP32 핀 GPIO13이 WS2812B에 연결됩니다.
#define NUM_PIXELS 12 // WS2812B LED 스트립에 있는 LED(픽셀)의 개수입니다.
Adafruit_NeoPixel ws2812b(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800);
void setup() {
ws2812b.begin(); // WS2812B 스트립 객체 초기화하기 (필수)
}
void loop() {
ws2812b.clear(); // 모든 픽셀 색상을 '끔'으로 설정합니다. pixels.show()가 호출될 때만 효과가 있습니다.
// 각 픽셀마다 지연시간을 두고 하나씩 초록색으로 바꾸기
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // 각 픽셀에 대해
ws2812b.setPixelColor(pixel, ws2812b.Color(0, 255, 0)); // pixels.show()가 호출될 때만 효과가 있습니다.
ws2812b.show(); // WS2812B Led 스트립에 업데이트하기
delay(500); // 각 픽셀 사이에 500ms 지연
}
// 모든 픽셀을 2초 동안 끄기
ws2812b.clear();
ws2812b.show(); // WS2812B Led 스트립에 업데이트하기
delay(2000); // 2초 동안 끔 시간
// 모든 픽셀을 동시에 빨간색으로 2초 동안 켜기
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // 각 픽셀에 대해
ws2812b.setPixelColor(pixel, ws2812b.Color(255, 0, 0)); // pixels.show()가 호출될 때만 효과가 있습니다.
}
ws2812b.show(); // WS2812B Led 스트립에 업데이트하기
delay(1000); // 1초 동안 켬 시간
// 모든 픽셀을 1초 동안 끄기
ws2812b.clear();
ws2812b.show(); // WS2812B Led 스트립에 업데이트하기
delay(1000); // 1초 동안 끔 시간
}
※ 실행화면

728x90
'Hardware > ESP32' 카테고리의 다른 글
| ESP32 WebSocket 연습 1 (0) | 2026.01.09 |
|---|---|
| ESP32 LittleFS 업로더 설치 (0) | 2026.01.09 |
| ESP32와 WS2812 RGB LED 1 - strip (0) | 2026.01.08 |
| ESP32와 1.28 Inch 원형 TFT LCD - 시계 (0) | 2026.01.08 |
| ESP32와 64x32 RGB LED Matrix 4 - 시계 (0) | 2026.01.08 |
