이 번에 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

+ Recent posts