아두이노 나노 ESP32 LED RGB

이 튜토리얼은 아두이노 나노 ESP32를 사용하여 RGB LED가 원하는 색상을 내도록 제어하는 방법에 대한 지침을 제공합니다.

준비물

1×아두이노 나노 ESP32 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×RGB LED 아마존
1×(또는) RGB LED 모듈 쿠팡 | 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×(추천) 아두이노 나노용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) 아두이노 나노용 브레이크아웃 확장 보드 쿠팡 | 아마존
1×(추천) 아두이노 나노 ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

RGB LED에 대해서

RGB LED는 기본 색상인 빨간색, 녹색, 파란색을 혼합하여 모든 색상을 내보낼 수 있습니다. 단일 RGB LED는 빨간색, 녹색, 파란색의 3개의 LED로 구성됩니다. 이 세 개의 LED는 단일 LED처럼 보이도록 하나의 케이스에 포장됩니다.

RGB LED 핀아웃

RGB LED는 네 개의 핀을 포함합니다:

  • R (빨간색) 핀: 빨간색 요소를 제어하는 데 사용됩니다.
  • G (녹색) 핀: 녹색 요소를 제어하는 데 사용됩니다.
  • B (파란색) 핀: 파란색 요소를 제어하는 데 사용됩니다.
  • 공통 (음극-) 핀: 이 핀을 GND (0V)에 연결하세요.
rgb LED 사용법 핀아웃

ESP32에 RGB LED를 연결하려면 전류 제한 저항을 추가해야 합니다. 이것은 배선을 복잡하게 만들 수 있습니다. 다행히도, 사전에 구축된 전류 제한 저항이 있는 RGB LED 모듈을 사용할 수 있습니다.

RGB LED 모듈에는 네 개의 핀이 포함되어 있습니다:

  • 공통 (음극-) 핀: GND(0V)에 연결해야 합니다.
  • R (빨강): 핀은 빨간색을 제어하는 데 사용됩니다.
  • G (녹색): 핀은 초록색을 제어하는 데 사용됩니다.
  • B (파랑): 핀은 파란색을 제어하는 데 사용됩니다.
rgb LED module 사용법 핀아웃

※ 주의:

공통 핀에 따르면 LED에는 공통 양극과 공통 음극 두 종류가 있습니다. 이 튜토리얼에서는 공통 음극 LED를 사용합니다.

RGB LED가 어떻게 작동하는가

물리학 측면에서, 색깔은 적색(R), 녹색(G), 청색(B)의 세 가지 색 요소의 조합입니다. 각 색 요소의 값 범위는 0부터 255까지입니다. 세 가지 색 요소 값의 조합으로 총 256 x 256 x 256의 색깔이 만들어집니다.

R, G, B 핀에 PWM 신호를 생성하면, RGB LED는 PWM 듀티 사이클 값에 해당하는 색상을 표시합니다. PWM 신호의 듀티 사이클을 변경함(0에서 255까지)으로써, RGB LED는 어떤 색상도 표시할 수 있습니다. 빨간색(R), 초록색(G), 파란색(B)의 색상 값은 각각 R, G, B 핀에서의 PWM 듀티 사이클에 해당합니다.

RGB LED와 Arduino Nano ESP32 간의 배선도

아두이노 나노 ESP32와 RGB LED 사이의 배선도

아두이노 나노 ESP32 rgb LED 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

브레드보드 없이 연결한 같은 배선입니다:

아두이노 나노 ESP32 rgb LED 연결 배선도 (브레드보드 없음)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 나노 ESP32와 RGB LED 모듈 간의 배선도

아두이노 나노 ESP32 rgb LED module 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

브레드보드를 사용하지 않는다면 이렇게 연결하세요:

아두이노 나노 ESP32 rgb LED module 연결 배선도 (브레드보드 없음)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

점퍼 와이어보다 더 튼튼한 연결을 원하시나요? Arduino Nano ESP32를 아두이노 나노용 스크루 터미널 확장 보드에 꽂기만 하면 됩니다. 배선은 같습니다. 아래 그림처럼 전선만 나사 단자로 연결됩니다.

아두이노 나노 ESP32 rgb LED module 연결 배선도 (screw terminal)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

RGB LED 제어 방법

#00979D 색상을 RGB LED에 표시하려면 다음 단계를 수행할 수 있습니다:

색상 코드 찾기. 팁:

rgb LED color picker

R, G, B 핀에 연결되는 아두이노 나노 ESP32 핀을 정의하세요. 예를 들면:

#define PIN_RED D11 // 아두이노 나노 ESP32 핀이 R 핀에 연결됨 #define PIN_GREEN D10 // 아두이노 나노 ESP32 핀이 G 핀에 연결됨 #define PIN_BLUE D9 // 아두이노 나노 ESP32 핀이 B 핀에 연결됨

이 Arduino Nano ESP32 핀들을 출력 모드로 설정하세요.

pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);

LED가 해당 색깔을 내도록 제어하기 (#00979D → R = 0, G = 151, B = 157)

analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

아두이노 나노 ESP32 - RGB LED 예제 코드

아래 코드는 LED 색상을 다음 색상 순서대로 변경합니다:

  • #00C9CC (R = 0, G = 201, B = 204) - #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138) - #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83) - #34A853 (R = 52, G = 168, B = 83)
/* * 이 아두이노 나노 esp32 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 esp32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-led-rgb */ #define PIN_RED D11 // Arduino Nano ESP32 핀은 R 핀에 연결됩니다 #define PIN_GREEN D10 // Arduino Nano ESP32 핀은 G 핀에 연결됩니다 #define PIN_BLUE D9 // Arduino Nano ESP32 핀은 B 핀에 연결됩니다 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // 색상 코드 #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // 1초 동안 색상 유지 // 색상 코드 #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // 1초 동안 색상 유지 // 색상 코드 #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // 1초 동안 색상 유지 }

많은 색을 사용할 때, 함수를 생성하여 코드를 줄일 수 있습니다:

/* * 이 아두이노 나노 esp32 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 esp32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-led-rgb */ #define PIN_RED D11 // 아두이노 나노 ESP32 핀이 R 핀에 연결됨 #define PIN_GREEN D10 // 아두이노 나노 ESP32 핀이 G 핀에 연결됨 #define PIN_BLUE D9 // 아두이노 나노 ESP32 핀이 B 핀에 연결됨 void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // 컬러 코드 #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // 색상을 1초 동안 유지 // 컬러 코드 #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // 색상을 1초 동안 유지 // 컬러 코드 #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // 색상을 1초 동안 유지 } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }