ESP32-S3 개발 보드 RGB LED 테스트 하기
ESP32-S3 개발 보드에는 일반 LED 대신 RGB LED가 달려 있습니다. 램프 및 조명

ESP32-S3 Hardware Introduction
ESP32-S3 개발 보드의 RGB LED 동작을 위한 3가지 방법
먼저 위의 구매 게시글 중간쯤에 보면 회로도가 첨부되어 있는데 이 회로도를 살펴보면 개발보드의 GPIO 48번에 RGB LED가 연결되어 있는것을 확인할 수 있습니다.
방법1. Adafruit NeoPixel 라이브러리 사용
Adafruit NeoPixel 라이브러리를 설치하여 RGB LED를 동작시킬 수 있습니다.
#include <Adafruit_NeoPixel.h>
#define LED_PIN 48
#define NUM_LEDS 1
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show();
}
void loop() {
strip.setPixelColor(0, strip.Color(255, 0, 0)); // 빨간색
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(0, 255, 0)); // 녹색
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(0, 0, 255)); // 파란색
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(255, 255, 0)); // 노란색
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(0, 255, 255)); // 시안색
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(255, 0, 255)); // 마젠타
strip.show();
delay(1000);
strip.setPixelColor(0, strip.Color(255, 255, 255)); // 흰색
strip.show();
delay(1000);
strip.show();
delay(1000);
}
방법2. ESP 내부 함수 사용( neopixelWrite )
ESP32 보드 설치시 같이 설치되는 SDK의 내장 함수 neopixelWrite 함수를 사용합니다.
/*
BlinkRGB
Demonstrates usage of onboard RGB LED on some ESP dev boards.
Calling digitalWrite(RGB_BUILTIN, HIGH) will use hidden RGB driver.
RGBLedWrite demonstrates controll of each channel:
void neopixelWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val)
WARNING: After using digitalWrite to drive RGB LED it will be impossible to drive the same pin
with normal HIGH/LOW level
*/
// the setup function runs once when you press reset or power the board
void setup() {
}
// the loop function runs over and over again forever
void loop() {
#ifdef RGB_BUILTIN
digitalWrite(RGB_BUILTIN, HIGH); // Turn the RGB LED white
delay(1000);
digitalWrite(RGB_BUILTIN, LOW); // Turn the RGB LED off
delay(1000);
neopixelWrite(RGB_BUILTIN,RGB_BRIGHTNESS,0,0); // Red
delay(1000);
neopixelWrite(RGB_BUILTIN,0,RGB_BRIGHTNESS,0); // Green
delay(1000);
neopixelWrite(RGB_BUILTIN,0,0,RGB_BRIGHTNESS); // Blue
delay(1000);
neopixelWrite(RGB_BUILTIN,0,0,0); // Off / black
delay(1000);
#endif
}
방법3. ESP 내부 함수 사용( rgbLedWrite )
ESP32 보드 설치시 같이 설치되는 SDK의 내장 함수 rgbLedWrite 함수를 사용합니다.
아래 예제는 ESP 보드 설치시 제공되는 예제로 아두이노 IDE 2의 File -> Examples -> ESP32 -> GPIO -> BlinkRGB 메뉴를 통해 불러올 수 있습니다.
/*
BlinkRGB
Demonstrates usage of onboard RGB LED on some ESP dev boards.
Calling digitalWrite(RGB_BUILTIN, HIGH) will use hidden RGB driver.
RGBLedWrite demonstrates control of each channel:
void rgbLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val)
WARNING: After using digitalWrite to drive RGB LED it will be impossible to drive the same pin
with normal HIGH/LOW level
*/
//#define RGB_BRIGHTNESS 64 // Change white brightness (max 255)
// the setup function runs once when you press reset or power the board
void setup() {
// No need to initialize the RGB LED
}
// the loop function runs over and over again forever
void loop() {
#ifdef RGB_BUILTIN
digitalWrite(RGB_BUILTIN, HIGH); // Turn the RGB LED white
delay(1000);
digitalWrite(RGB_BUILTIN, LOW); // Turn the RGB LED off
delay(1000);
rgbLedWrite(RGB_BUILTIN, RGB_BRIGHTNESS, 0, 0); // Red
delay(1000);
rgbLedWrite(RGB_BUILTIN, 0, RGB_BRIGHTNESS, 0); // Green
delay(1000);
rgbLedWrite(RGB_BUILTIN, 0, 0, RGB_BRIGHTNESS); // Blue
delay(1000);
rgbLedWrite(RGB_BUILTIN, 0, 0, 0); // Off / black
delay(1000);
#endif
}
방법2와 방법3의 RGB LED 동작시키는 함수가 달라 소스코드를 살펴보니 아래와 같은 주석을 발견하였습니다.
// Will use RGB_BUILTIN_LED_COLOR_ORDER
void rgbLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val);
// Backward compatibility - Deprecated. It will be removed in future releases.
[[deprecated("Use rgbLedWrite() instead.")]]
void neopixelWrite(uint8_t p, uint8_t r, uint8_t g, uint8_t b);
이전 호환성을 위해 neopixelWrite라는 함수가 사용되었지만 추후 삭제할 예정이므로 rgbLedWrite 함수로 사용하라고 적혀 있습니다.
따라서 RGB LED를 사용하려면 방법3을 사용하시면 특별한 라이브러리 설치 없이도 쉽게 사용할 수 있습니다.
동작 안 되는 RGB LED 디버깅
제가 왜 위의 3가지 방법을 알게 되었냐면 하나의 소스가 동작이 안되어 다른 소스를 검색하여 테스트 하다보니 3가지 방법을 알게 되었습니다.
이상하게도 3가지 테스트를 해 봤는데 어느것도 RGB LED가 켜지지 않았습니다.
다른 블로그와 ChatGPT를 사용해도 해결이 안되어 회로도와 실제 보드를 비교해 보면서 문제점을 확인해 보았습니다.
아래 이미지의 노락색 원 부분을 보면 RGB 라는 표시가 보이고 그 오른쪽에 점퍼가 있는것을 볼 수 있습니다.
자세히 보시면 점퍼의 두 패드 사이가 떨어져 있습니다.
회로도에는 이 부분이 0 옴으로 연결되어 있는데 실제 보드에서는 연결되어 있지 않습니다.

RGB jumper on the ESP32-S2 board
그래서 간단히 핀셋을 사용하여 두 패드를 강제적으로 연결해 보니 그제서야 정상적으로 RGB LED가 켜집니다.
위 튜토리얼 출처는 이곳을 따라가세요. 원저자에게 감사합니다.
'ESP32' 카테고리의 다른 글
| esp32-s3 보드 정보 출력 (0) | 2026.05.21 |
|---|---|
| ESP32 웹 업데이트 OTA(Over The Air) 프로그래밍 (0) | 2026.05.21 |
| ESP32 기본 OTA(Over The Air) 프로그래밍 (0) | 2026.05.21 |
| ESP32-C3 슈퍼 미니 빠르게 시작하기 가이드 배포 (0) | 2026.05.18 |
| ESP-IDF: ESP32 웹 서버 - 기본 HTTP 인증 (0) | 2026.05.16 |
| ESP32 개발 보드에 USB-C 또는 Micro-USB 포트가 두 개 있는 이유 (0) | 2026.05.03 |
| ESP32 아두이노 환경과 ESP-IDF 환경 비교 (0) | 2026.04.30 |
| ESP-Claw 개념 (0) | 2026.04.27 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩