아두이노 RGB LED로 여러가지 색깔 만들기
준비물:
- 아두이노 보드
- RGB LED
RGB LED란?
사진: 디바이스마트
RGB LED는 Red(빨강), Green(녹색), Blue(파랑) 세가지 색을 낼 수 있는 LED이다.
그래서 다리가 일반 LED보다 많다.
색은 세가지인데 다리는 네개인 이유는?
전류가 흘러야 하기 때문에~
애노드에 +전원을, 캐소드에 -전원을 걸어줘야 한다.
부품마다 애노드,캐소드 방향이 다를 수 있으니 부품 데이타시트를 잘 확인해야 한다.
사진: 디바이스마트
회로를 연결해보자.
LED는 아두이노에 직접 연결하면 전류가 너무 많이 흘러 고장날 수 있으므로
LED에 직렬 저항을 연결해서 적당한 전류가 흐르게 한다.
실험에 사용한 보드는 표준 아두이노 보드는 아니다.
ATmega128 칩을 사용한 보드인데 ATmega128용 부트로더를 올려 아두이노로 사용할 수 있게끔 만들었다.
analogWrite()함수를 사용하기 위해서는 PWM기능이 있는 핀에 LED를 연결해야 한다.
3, 4, 5 번 핀에 RGB LED를 연결했다.
3번핀 : Red
4번핀 : Green
5번핀 : Blue
코드를 보자.
int i=0;
void setup() {
pinMode(3, OUTPUT); // 빨강
pinMode(4, OUTPUT); // 녹색
pinMode(5, OUTPUT); // 파랑
digitalWrite(3, HIGH); // 빨강 끔
digitalWrite(4, HIGH); // 녹색 끔
digitalWrite(5, HIGH); // 파랑 끔
}
void loop() {
for(i=0;i<=255;i++){
analogWrite(3, i); // 빨강 켜졌다가 점점 꺼짐
analogWrite(4, 255-i); // 녹색 꺼졌다가 점점 켜짐
delay(10);
}
for(i=0;i<=255;i++){
analogWrite(4, i); // 녹색 켜졌다가 점점 꺼짐
analogWrite(5, 255-i); // 파랑 꺼졌다가 점점 켜짐
delay(10);
}
for(i=0;i<=255;i++){
analogWrite(5, i); // 파랑 커졌다가 점점 꺼짐
analogWrite(3, 255-i); // 빨강 꺼졌다가 점점 켜짐
delay(10);
}
}
anlogWrite() 함수를 사용해서 빨강,녹색,파랑 LED가 순서대로 겹쳐가며 점점 켜졌다가 점점 꺼지는 효과를 만들었다.
빨강 -> 노랑 -> 녹색 -> 청록 -> 파랑 -> 분홍 -> 빨강
이렇게 색상이 바뀌는 코드이다.
RGB LED의 원래 색은 빨강, 녹색, 파랑 세가지뿐이지만 색과 색이 겹치면 다른 색상이 만들어진다.
이 효과를 잘 이용하면 훨씬 다양한 색들을 표현할 수 있다.
실제 동작 영상을 보자.
'프로그래밍 > 프로그래밍_여러가지' 카테고리의 다른 글
비주얼베이직.net - 기초 공부하기 좋은 강좌 - 땜쓰 전자연구소 (0) | 2019.10.25 |
---|---|
MODBUS - Huanyang HY01D523B VFD, RS485 MODBUS Protocol, RTU Mode (0) | 2019.10.11 |
아두이노 - PE43712 Attenuator SPI 통신 (0) | 2019.05.24 |
아두이노 - ATtiny85 SPI통신 Slave 모드, USI(Universal Serial Interface) (0) | 2019.04.29 |
아두이노 - Pin Change Interrupt (ATtiny85 사용), Arduino (0) | 2019.04.29 |