7장. RGB LED의 색 제어하기

来自Microduino Wikipedia
跳转至: 导航搜索
Language English

목표

이번장에서는 RGB LED를 제어하는 방법에 대해 알아봅니다. 색을 변화시키며 다양한 효과를 만들어낼 수 있을 것입니다.

부품

RGB

RGB LED는 빨강, 녹색, 파란색 세가지 색의 LED를 포함하고 있습니다. 세개의 LED의 밝기를 제어하면 원하는 색을 만들어 낼수 있습니다.

Lesson7-RGB.jpg

연결방법

  • 방법 1 : 가장 긴 리드와이어(애노드)는 +5V에 연결합니다. 다른 세개의 핀은 220ohm저항과 시리얼로 마이크로두이노의 PWM 출력포트에 연결합니다. 저항은 LED에 너무 많은 전류가 흘러 타지않도록 제한하는 역할을 합니다.
  • 방법 2 : RGB LED의 애노드 단자오 220ohm 저항은 시리얼로 Vcc에 연결하고 다른 세개의 핀은 PWM 출력 포트에 연결합니다. 세개의 LED는 저항을 공유하는 형태입니다.

회로도

다음 회로도는 '방법 1'을 사용했으며 PWM 출력포트로 D5, D6, D11번핀을 사용했습니다.

Lesson7-schematic.jpg

프로그램

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() 사용자 함수를 사용했습니다. 이 장에서는 간단하게 몇가지 색깔만 만들었지만 포토샵 프로그램과 같은 프로그램을 이용하여 다양한 색깔을 만들어 볼 수 있습니다.

결과

빨강색, 녹색, 파란색, 노란색, 자주색, 검정색, 흰색등을 만들어 봤으며 숨쉬는 램프와 같은 효과를 만들어 낼 수 있습니다.

비디오