아두이노 - RGB LED | Arduino - RGB LED

이 튜토리얼에서 우리는 다음을 배우려고 합니다:

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×RGB LED Amazon
1×(Alternative) RGB LED Module 쿠팡 | Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino Uno 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

RGB LED에 관하여

RGB LED는 빨강, 초록, 파랑 이 3가지 기본 색을 혼합하여 모든 색을 낼 수 있습니다. 실제로, 이것은 단일 케이스 안에 함께 포장된 빨간색, 초록색, 파란색의 3개 별개의 LED로 구성되어 있습니다.

핀배열

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

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

RGB LED를 아두이노에 연결하려면 전류 제한 저항을 사용해야 합니다. 이로 인해 배선이 복잡해질 수 있습니다. 다행히도, 내장된 전류 제한 저항이 있는 RGB LED 모듈을 사용할 수 있습니다.

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

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

※ NOTE THAT:

공통 핀은 RGB LED 유형에 따라 음극이나 양극이 될 수 있습니다. 이 튜토리얼에서는 공통 음극을 사용합니다.

작동 원리

물리학의 본성에서, 색은 세 가지 색상 값으로 구성됩니다: 빨강(R), 초록(G), 그리고 파랑(B). 각 색상 값은 0에서 255까지의 범위를 가집니다.

세 가지 값의 조합으로 총 256 x 256 x 256 색상이 생성됩니다.

우리가 R, G, B 핀에 듀티 사이클이 0에서 255까지인 PWM 신호를 제공한다면, 우리가 원하는 어떤 색이라도 RGB LED가 표시하게 할 수 있습니다.

PWM 신호의 듀티 사이클은 레드(R), 그린(G), 블루(B) 핀에 해당하는 색상 값에 대응됩니다.

선연결

Arduino와 RGB LED 사이의 배선도

Arduino RGB LED wiring diagram

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

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

Arduino RGB LED module wiring diagram

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

RGB LED 제어 방법

우리가 GRB LED를 예를 들어 #00979D와 같은 어떤 색으로도 제어하는 방법을 단계별로 배워봅시다:

  • 표시하려는 색상을 결정하고 해당 색상 코드를 가져옵니다. 팁:
  • w3school의 도구를 사용하여 색상 코드를 R, G, B 값으로 변환하세요. 이 경우에는 다음 값을 기록하세요: R = 0, G = 151, B = 157
RGB LED color picker

R, G, B 핀에 연결되는 아두이노 핀 정의 예시:

const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9;

이 아두이노 핀들을 출력 모드로 설정하세요.

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);

아두이노 - 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 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-rgb-led */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9; 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 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-rgb-led */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9; 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); }

추가 지식

공통 양극을 가진 RGB LED의 경우, 다음과 같이 해야 합니다:

  • 공통 핀을 아두이노의 3.3V에 연결합니다.
  • AnalogWrite() 함수에서 R, G, B 값을 각각 255 - R, 255 - G, 255 - B로 변경합니다.

RCB LED의 연속적인 연결로 RGB LED 스트립이 만들어집니다. LED 스트립은 주소 지정 가능한 LED 스트립과 주소 지정 불가능한 LED 스트립으로 분류될 수 있습니다. 우리는 각 유형의 LED 스트립에 대한 튜토리얼을 만들 계획입니다.

※ NOTE THAT:

RGB LED의 공통 핀에 단일 저항을 사용하는 것이 아니라 다른 핀에 3개의 저항을 사용해야 합니다.

우리가 알다시피, 단일 RGB 패키지의 세 개의 LED는 병렬로 연결되어 있습니다. 이상적인 조건에서는 공통 핀에 단일 저항을 사용해도 괜찮습니다. 그러나 실제로는 사용하지 마십시오. 그 이유는 실제 세상의 LED가 동일한 특성을 갖지 않기 때문입니다. RGB 패키지의 세 개의 LED는 동일하지 않습니다 ⇒ LED의 저항이 다릅니다 ⇒ 각 LED에 전류가 불균등하게 분배됩니다 ⇒ 밝기가 같지 않고 이로 인해 LED가 파괴될 수 있으며, 그 후 다른 LED도 파괴될 수 있습니다.

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