아두이노 나노 ESP32 - LED RGB | Arduino Nano ESP32 - LED RGB

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

준비물

1×Arduino Nano ESP32 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) Screw Terminal Adapter for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

RGB LED에 대해서

RGB LED는 기본 색상인 빨간색, 녹색, 파란색을 혼합하여 모든 색상을 내보낼 수 있습니다. 단일 RGB LED는 빨간색, 녹색, 파란색의 3개의 LED로 구성됩니다. 이 세 개의 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와 Arduino Nano ESP32 간의 배선도

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

Arduino Nano ESP32 RGB LED wiring diagram

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

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

Arduino Nano ESP32 RGB LED module wiring diagram

이 이미지는 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)
/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 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초 동안 색상 유지 }

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

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 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); }

※ 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!