아두이노 - RGB LED | Arduino - RGB LED
이 튜토리얼에서 우리는 다음을 배우려고 합니다:
- RGB LED가 어떻게 작동하는지.
- RGB LED를 아두이노에 어떻게 연결하는지.
- 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를 아두이노에 연결하려면 전류 제한 저항을 사용해야 합니다. 이로 인해 배선이 복잡해질 수 있습니다. 다행히도, 내장된 전류 제한 저항이 있는 RGB LED 모듈을 사용할 수 있습니다.
RGB LED 모듈에는 또한 네 개의 핀이 포함되어 있습니다:
- 공통 (음극-) 핀: GND (0V)에 연결되어야 합니다.
- R (빨간색): 핀은 빨간색을 제어하는 데 사용됩니다.
- G (녹색): 핀은 녹색을 제어하는 데 사용됩니다.
- B (파란색): 핀은 파란색을 제어하는 데 사용됩니다.
※ 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 사이의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
아두이노와 RGB LED 모듈 간의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
RGB LED 제어 방법
우리가 GRB LED를 예를 들어 #00979D와 같은 어떤 색으로도 제어하는 방법을 단계별로 배워봅시다:
- 표시하려는 색상을 결정하고 해당 색상 코드를 가져옵니다. 팁:
- 원하는 색상 코드는 색상 선택기에서 선택할 수 있습니다.
- 이미지에서 색상을 사용하려면 온라인 이미지로부터의 색상 도구를 사용하세요.
- w3school의 도구를 사용하여 색상 코드를 R, G, B 값으로 변환하세요. 이 경우에는 다음 값을 기록하세요: R = 0, G = 151, B = 157
R, G, B 핀에 연결되는 아두이노 핀 정의 예시:
이 아두이노 핀들을 출력 모드로 설정하세요.
색깔을 내도록 LED를 제어하세요 (#00979D → R = 0, G = 151, B = 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)
여러 색을 사용할 때 코드를 짧게 만들기 위해 함수를 생성할 수 있습니다:
추가 지식
공통 양극을 가진 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도 파괴될 수 있습니다.