티스토리 뷰
LED 중에는 3가지 색을 낼 수 있는 제품이 있습니다. 다리가 4개이기 때문에 '4 leg LED', '4 pin LED', 또는 낼 수 있는 색깔이 빨강(Red), 초록(Green), 파랑(Blue)이라 'RGB LED'라고도 부릅니다.
<그림 1> RGB LED
RGB 가산 혼합
RGB LED를 사용하면 3가지 색만 낼 수 있는 것이 아니라 색을 조합해서 거의 모든 색을 낼 수 있습니다. 2개 또는 3개의 색이 동시에 켜져 있지만 우리 눈은 한 가지 색으로 인지합니다. 만약 빨강과 초록이 켜져 있다면 노란색으로 보입니다. 물감은 여러 가지 색을 섞을수록 어두워지다 결국 검은색이 되지만, 이 LED 빛은 모을수록 밝아지며 3개를 모두 모으면 흰색이 됩니다. 물감처럼 섞을수록 어두워지는 것을 'RGB 감산 혼합', LED처럼 밝아지는 것을 'RGB 가산 혼합'이라고 합니다.
<그림 2> RGB 가산 혼합
RGB LED (Common Cathode, Anode)
<그림 2> Common Cathode LED와 Common Anode LED
RGB LED는 핀이 네 개 있습니다. 핀 길이가 조금씩 다른데 가장 긴 것이 Anode이거나 Cathode입니다. 이 핀은 다른 핀들이 공통으로 사용하기 때문에 Common(공통 단자)라고 부릅니다. Common Cathode 인지 Anode 인지에 따라 Common에 연결해야 될 입력이 달라집니다. 이 두 LED는 생긴 걸로 구분이 쉽지 않기 때문에 구매할 때 꼭 확인해야 합니다.
아래 회로는 가장 간단하게 연결한 예시입니다. 이 회로에서 RGB에 해당하는 각각 단자는 PWM 기능이 있는 디지털 9, 10, 11에 연결합니다. Common 단자는 연결 방법이 다릅니다. Common Cathode는 아두이노 GND에 연결합니다. Common Anode는 아두이노 Vcc에 연결합니다. Common Anode 회로에서 아두이노와 LED가 GND 없이 연결한 것이 익숙하지 않을 수도 있지만, Vcc에서 LED를 거쳐 디지털 핀으로 전류가 흘러 LED가 켜집니다.
<그림 3> 3색 LED 연결 예시
PWM 제어
<그림 5> RGB LED 작동 모습
완성된 코드
Common Cathode
int RED = 11; int GREEN = 10; int BLUE = 9; void setup() { pinMode(RED, OUTPUT); pinMode(GREEN, OUTPUT); pinMode(BLUE, OUTPUT); } void loop() { analogWrite(RED, 255); // RED ON analogWrite(GREEN, 0); analogWrite(BLUE, 0); delay(1000); analogWrite(RED, 0); analogWrite(GREEN, 255); // GREEN ON analogWrite(BLUE, 0); delay(1000); analogWrite(RED, 0); analogWrite(GREEN, 0); analogWrite(BLUE, 255); // BLUE ON delay(1000); }
Common Anode
int RED = 11; int GREEN = 10; int BLUE = 9; void setup() { pinMode(RED, OUTPUT); pinMode(GREEN, OUTPUT); pinMode(BLUE, OUTPUT); } void loop() { analogWrite(RED, 0); // RED ON analogWrite(GREEN, 255); analogWrite(BLUE, 255); delay(1000); analogWrite(RED, 255); analogWrite(GREEN, 0); // GREEN ON analogWrite(BLUE, 255); delay(1000); analogWrite(RED, 255); analogWrite(GREEN, 255); analogWrite(BLUE, 0); // BLUE ON delay(1000); }
Common Anode LED는 전류가 Vcc에서 LED를 거쳐 Digital Pin으로 흐릅니다. Digital 핀에서 신호가 나오면 전류가 흐르지 못해 LED가 켜지지 않습니다. 켜고자 하는 LED에 해당하는 핀의 출력을 없애면 그 LED가 켜집니다. 만약 밝기 80수준으로 LED를 켜고 싶으면 175(255-80=175)를 입력해야 합니다.
'아두이노' 카테고리의 다른 글
[아두이노] DC모터 사용하기 (3) | 2019.01.17 |
---|---|
[아두이노] Web Editor 사용하기 (2) | 2019.01.16 |
[아두이노] LED 저항 계산하기 (2) | 2019.01.11 |
[아두이노] 택트 스위치 사용하기 (1) | 2019.01.03 |
[아두이노] 릴레이 사용하기 (1) | 2019.01.03 |
- Total
- Today
- Yesterday
- Stepper Motor
- Arduino
- dht
- 습도
- dc 모터
- 코딩
- 애자일
- 온도
- Scrum
- 아두이노
- 태양광
- Fading LED
- relay
- Solar Panel
- solar
- 스크럼
- Step Motor
- 태양광 공유
- 시리얼 모니터
- agile
- Potentiometer
- Solar Sharing
- DHT22
- 릴레이
- DC Motor
- 초음파센서
- LED
- 4 원칙
- Renewable
- 서보모터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |