코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-07-25 04:21:32
RGB LED는 한 가지 색을 내는 LED와 달리 총 265가지의 색을 낼 수 있습니다.
RGB는 4개의 핀을 가지고 있습니다. 각 핀은 기본적으로 빨강, 초록, 파랑 색을 출력합니다.
각 핀마다 어떤 값을 할당하는 가에 따라 세가지 색이 조합되어 여러가지 색을 표현할 수 있습니다.
다양한 색을 표현 하고 싶을 때 사용해보세요.
출처 : bpiinc.wordpress.com
출처 : hacknmod.com
출처 : www.robotshop.com
이번에는 RGB LED를 연결 한 후, 디지털 출력을 이용해 총 7가지 색을 출력해 보겠습니다.
RGB LED에 대한 원리 뿐만이 아니라 디지털 출력에 대한 원리도 배우실 수 있습니다.
앞으로 센서를 연결해서 출력값을 내보낼 때 사용하실 수 있습니다.
본 학습에는 총 5종류의 부품이 필요합니다.
NO | 부품명 | 수량 |
1 | 아두이노 우노 R3 | 1 |
2 | 5mm RGB LED | 1 |
3 | 330Ω 저항 | 3 |
4 | 브레드 보드 | 1 |
5 | 점퍼 케이블 | 4 |
부품명 | 330Ω 저항 | Breadboard | Arduino UNO | Jumper cable | 5mm RGB LED |
파트 | X3 | X1 | X1 | X4 | X1 |
// RED LED를 디지털 11번 핀에 연결합니다.
const int RED_PIN = 11;
// GREEN LED를 디지털 10번 핀에 연결합니다.
const int GREEN_PIN = 10;
// BLUE LED를 디지털 9번 핀에 연결합니다.
const int BLUE_PIN = 9;
// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
void setup() {
// 11번 핀을 출력으로 설정 합니다.
pinMode(RED_PIN, OUTPUT);
// 10번 핀을 출력으로 설정 합니다.
pinMode(GREEN_PIN, OUTPUT);
// 9번 핀을 출력으로 설정 합니다.
pinMode(BLUE_PIN, OUTPUT);
}
// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행합니다.
void loop() {
// RGB LED로 빨간색 불빛을 출력합니다.
// RED LED를 ON 시킵니다.
digitalWrite(RED_PIN,HIGH);
digitalWrite(GREEN_PIN,LOW);
digitalWrite(BLUE_PIN,LOW);
// 2초 대기합니다.
delay(2000);
// RGB LED로 초록색 불빛을 출력합니다.
digitalWrite(RED_PIN,LOW);
// GREEN LED를 ON 시킵니다.
digitalWrite(GREEN_PIN,HIGH);
digitalWrite(BLUE_PIN,LOW);
// 2초 대기합니다.
delay(2000);
// RGB LED로 파란색 불빛을 출력합니다.
digitalWrite(RED_PIN,LOW);
digitalWrite(GREEN_PIN,LOW);
//BLUE LED를 ON 시킵니다.
digitalWrite(BLUE_PIN,HIGH);
// 2초 대기합니다.
delay(2000);
// RGB LED를 소등합니다.
// 모든 LED를 OFF 시킵니다.
digitalWrite(RED_PIN,LOW);
digitalWrite(GREEN_PIN,LOW);
digitalWrite(BLUE_PIN,LOW);
// 2초 대기합니다.
delay(2000);
}
RGB_LED는 세 개의 LED를 합쳐놓은 것이라고 생각하면 됩니다.
즉, 각 부분을 다른 디지털 핀에 연결한 후, 스케치로 디지털 핀 별로 다른 값을 출력하도록 해서
LED의 색깔을 조절 할 수 있습니다. 빨간 색을 원하면 RED LED만 HIGH가 출력되도록 합니다.
// RED LED를 디지털 11번 핀에 연결합니다.
const int RED_PIN = 11;
// GREEN LED를 디지털 10번 핀에 연결합니다.
const int GREEN_PIN = 10;
// BLUE LED를 디지털 9번 핀에 연결합니다.
const int BLUE_PIN = 9;
각 LED와 연결 된 핀 번호를 변수에 저장합니다. 이제 앞으로 각 핀 번호 대신 변수명을 사용할 것입니다.
const라는 것은 상수라는 뜻으로 변수 앞에 붙일 경우 스케치의 다른 부분에서 값을 함부로 변경할 수 없습니다.
// 11번 핀을 출력으로 설정 합니다.
pinMode(RED_PIN, OUTPUT);
// 10번 핀을 출력으로 설정 합니다.
pinMode(GREEN_PIN, OUTPUT);
// 9번 핀을 출력으로 설정 합니다.
pinMode(BLUE_PIN, OUTPUT);
핀 세개를 통해 LED에 디지털 값을 전달할 것이므로 각 핀을 출력으로 설정합니다.
// RGB LED로 빨간색 불빛을 출력합니다.
// RED LED를 ON 시킵니다.
digitalWrite(RED_PIN,HIGH);
digitalWrite(GREEN_PIN,LOW);
digitalWrite(BLUE_PIN,LOW);
각 핀의 디지털 출력값을 결정합니다.
HIGH, LOW를 통해 LED 8종류를(꺼짐 포함) 표현할 수 있습니다.
예를 들어 RED_PIN, GREEN_PIN으로 HIGH 값을 내보 낼 경우 노란색이 나옵니다.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!