본문 바로가기

프로그래밍/프로그래밍_여러가지

아두이노 - RGB LED로 여러가지 색깔 만들기

반응형

 

 

아두이노 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의 원래 색은 빨강, 녹색, 파랑 세가지뿐이지만 색과 색이 겹치면 다른 색상이 만들어진다.

이 효과를 잘 이용하면 훨씬 다양한 색들을 표현할 수 있다.

 

 

 

실제 동작 영상을 보자.

 

 

 

 

 

 

 

 

 

 

반응형