ESP32 - RGB LED | ESP32 - RGB LED

이 튜토리얼은 ESP32를 사용하여 RGB LED가 어떤 색깔도 내도록 제어하는 방법을 가르쳐 줍니다.

준비물

1×ESP-WROOM-32 Dev Module 쿠팡 | Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×RGB LED Amazon
1×(Alternative) RGB LED Module 쿠팡 | Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) DC Power Jack 쿠팡 | Amazon
1×(Recommended) ESP32 Screw Terminal Adapter 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

RGB LED에 관하여

RGB LED는 기본 색상인 빨강, 초록, 파랑 3가지 색상을 혼합하여 어떤 색도 낼 수 있습니다. 단일 RGB LED는 빨간색, 초록색, 파란색 LED 3개로 구성되어 있습니다. 이 세 개의 LED는 단일 LED처럼 보이도록 하나의 케이스에 포장되어 있습니다.

RGB LED 핀배열

RGB LED에는 네 개의 핀이 포함됩니다:

  • R (빨강) 핀: 빨간색 요소를 제어하기 위함입니다.
  • G (녹색) 핀: 녹색 요소를 제어하기 위함입니다.
  • B (파랑) 핀: 파란색 요소를 제어하기 위함입니다.
  • 공통 (음극-) 핀: 이 핀을 GND(0V)에 연결하세요.
RGB LED Pinout

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

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

  • 공통 (음극-) 핀: GND (0V)에 연결해야 합니다.
  • R (빨강): 핀은 빨강을 제어하는 데 사용됩니다.
  • G (녹색): 핀은 녹색을 제어하는 데 사용됩니다.
  • B (파랑): 핀은 파랑을 제어하는 데 사용됩니다.
RGB LED Module Pinout

※ NOTE THAT:

공통 핀에 따르면, 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와 ESP32 사이의 배선도

ESP32와 RGB LED 사이의 연결도

ESP32 RGB LED wiring diagram

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

ESP32와 RGB LED 모듈 간의 배선도

ESP32 RGB LED module wiring diagram

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

RGB LED 제어 방법

우리가 RGB LED에 #00979D 색상을 표시하고 싶다고 가정해 보겠습니다. 다음 단계를 수행할 수 있습니다:

색상 코드 찾기. 팁:

  • 원하는 색상 코드를 색상 선택기에서 선택할 수 있습니다.
  • 이미지에서 색상을 사용하고 싶다면, 온라인 이미지로부터의 색상 도구를 사용하세요.
  • w3school의 도구를 사용하여 색상 코드를 R, G, B 값으로 변환하세요. 이 경우에는: R = 0, G = 151, B = 157입니다.
RGB LED color picker

R, G, B 핀에 연결되는 ESP32 핀을 정의하세요. 예를 들어:

#define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21

이 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/esp32/esp32-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 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/esp32/esp32-rgb-led */ #define PIN_RED 23 // GPIO23 #define PIN_GREEN 22 // GPIO22 #define PIN_BLUE 21 // GPIO21 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); }

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!