7장. RGB LED의 색 제어하기
Language | English |
---|
목표이번장에서는 RGB LED를 제어하는 방법에 대해 알아봅니다. 색을 변화시키며 다양한 효과를 만들어낼 수 있을 것입니다. 부품
RGBRGB LED는 빨강, 녹색, 파란색 세가지 색의 LED를 포함하고 있습니다. 세개의 LED의 밝기를 제어하면 원하는 색을 만들어 낼수 있습니다. 연결방법
회로도다음 회로도는 '방법 1'을 사용했으며 PWM 출력포트로 D5, D6, D11번핀을 사용했습니다. 프로그램int redPin = 11;
int greenPin = 5;
int bluePin = 6;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
setColor(255, 0, 0); // 빨강색
delay(1000);
setColor(0, 255, 0); // 녹색색
delay(1000);
setColor(0, 0, 255); // 파란색
delay(1000);
setColor(255, 255, 0); // 노란색
delay(1000);
setColor(80, 0, 80); // 보라색
delay(1000);
setColor(255, 255, 255); // 흰색
delay(1000);
setColor(0, 0, 0); // 검증색
delay(1000);
for(int i=0;i<255;i+=5) // 빨강색 점점 밝아짐
{
setColor(i, 0, 0);
delay(30);
}
delay(100);
for(int i=255;i>0;i-=5) // 빨강색 점점 어두워짐
{
setColor(i, 0, 0);
delay(30);
}
delay(100);
for(int i=0;i<255;i+=5) // 파란색 점점 밝아짐
{
setColor(0, i, 0);
delay(30);
}
delay(100);
for(int i=255;i>0;i-=5) // 파란색 점점 어두워짐
{
setColor(0, i, 0);
delay(30);
}
delay(100);
for(int i=0;i<255;i+=5) // 녹색 점점 밝아짐
{
setColor(0, 0, i);
delay(30);
}
delay(100);
for(int i=255;i>0;i-=5) // 녹색 점점 어두워짐
{
setColor(0, 0, i);
delay(30);
}
delay(100);
}
void setColor(int red, int green, int blue) // 색상을 표시하는 함수
{
analogWrite(redPin, 255-red); // 빨강색 LED 값
analogWrite(greenPin, 255-green); // 녹색 LED 값
analogWrite(bluePin, 255-blue); // 파란색 LED 값
}
setColor() 사용자 함수를 사용했습니다. 이 장에서는 간단하게 몇가지 색깔만 만들었지만 포토샵 프로그램과 같은 프로그램을 이용하여 다양한 색깔을 만들어 볼 수 있습니다. 결과빨강색, 녹색, 파란색, 노란색, 자주색, 검정색, 흰색등을 만들어 봤으며 숨쉬는 램프와 같은 효과를 만들어 낼 수 있습니다. 비디오 |