본문 바로가기

Arduino/[2] Arduino Module

[Arduino Module] #10. RGB

728x90
반응형

RGB Module

RGB 모듈

RGB LED

RGB LED

- GND
R 11
G 10
B 9

RGB BLINK 예제

long pm_3[3] = {0,};
long md_3[3] = {1000,2000,3000};

const int RGB[3] = {9,10,11};
int RGBS[3] = {LOW,LOW,LOW};

void turnoff(){
  digitalWrite(RGB[0],LOW);
  digitalWrite(RGB[1],LOW);
  digitalWrite(RGB[2],LOW);
}

void setup(){
  
  for(int i=0;i<=2;i++){
    pinMode(RGB[i],OUTPUT);
  }
}

void loop(){
  
  for(int i=0;i<3;i++){
    digitalWrite(RGB[i],HIGH);
    delay(1000);
    turnoff();
  }
}

 

RGB FADDING 예제

long pm_3[3] = {0,};
long md_3[3] = {1000,2000,3000};

const int RGB[3] = {9,10,11};
int RGBS[3] = {LOW,LOW,LOW};

void RGBblink_setup(){
  
  for(int i=0;i<=2;i++){
    pinMode(RGB[i],OUTPUT);
  }
}

void RGBblink_loop(){
  
  unsigned long n = millis();
  
  for(int i=0;i<=2;i++){
    
    if (n - pm_3[i] >= md_3[i]){     
    pm_3[i] = n;
    digitalWrite(RGB[i],RGBS[i]=(RGBS[i]==LOW?HIGH:LOW));
    }
  }
}

RGB는 3가지 LED 색상을 출력 형태로 가지며 아날로그 출력과 디지털 출력을 모두 할 수 있도록 PWM핀으로 선언하는 것이 좋다.

여러 색 출력하기

ㅁnalogWrite를 이용해 여러 색을 표현할 수 있다.

int redPin = 9;
int greenPin = 10;
int bluePin = 11;

void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);  
}

void loop()
{
  setColor(255, 0, 0);  // red
  delay(1000);
  setColor(0, 255, 0);  // green
  delay(1000);
  setColor(0, 0, 255);  // blue
  delay(1000);
  setColor(255, 255, 0);  // yellow
  delay(1000);  
  setColor(80, 0, 80);  // purple
  delay(1000);
  setColor(0, 255, 255);  // aqua
  delay(1000);
}

void setColor(int red, int green, int blue)
{
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);  
}
728x90
반응형
댓글