[3D프린터개발산업기사 실기] RGB LED

2020. 8. 13. 00:24공대남편/3D프린터개발산업기사

원리

   흔히 쓰는 단색 LED가 아닌 3색(RGB) LED는 아래 사진처럼 다리가 4개가 있다. 하나는 Vcc 또는 GND 핀이고 나머지 세 개 핀은 각각 빨강(R), 초록(G), 파랑(B) 빛을 켤 수 있는 핀이다.

  RGB LED는 종류가 두 가지인데, RGB핀 외에 나머지 한 개의 핀이 Vcc에 연결하는 핀인지 GND에 연결하는 핀인지에 따라 달라진다. (보드에 적힌 핀 정보를 확인하거나 회로도를 확인하자.) GND에 연결하는 것은 Cathode 타입, Vcc에 연결하는 것은 Anode 타입이다. R, G, B 핀에 각각 PWM으로 신호를 넣으면, 값에 따라 색이 변한다.

  • Cathode 타입 : R, G, B + GND
  • Anode 타입 : R, G, B + Vcc

 

회로 구성

  일반적으로 PCB에 결합된 LED는 저항도 함께 결합되어 있기 때문에 별도의 저항을 연결할 필요가 없다. 그러나 간혹 저항이 결합되어 있지 않은 LED 모듈 제품도 있기 때문에 확인해보고 사용하자.

앞면 또는 뒷면에 네모난 저항이 붙어있는지 확인하자.

  기본적으로 LED는 1.8 ~ 3.4V / 20~30mA에 동작하며, 저항없이 직접 전원에 연결하여 사용할 경우 정격 전압보다 높은 전압이 인가되어 LED의 수명이 단축되거나 고장이 날 수 있다. 따라서 LED 모듈에 저항이 없는 경우 저항값을 계산하여 연결해 준다. (링크 - digikey 저항 계산기) 

 

  R, G, B 핀은 PWM 제어를 사용하기 때문에 PWM 출력이 가능한 핀에 연결한다. (물결 무늬 "~"가 표시된 핀)

RGB LED 아두이노
R D3
G D5
B D6
GND GND

  

코드 작성

  일정한 시간 간격으로 LED 불빛의 색이 빨강, 초록, 파랑으로 바뀌는 코드를 작성해보자.

int red = 6; //red 핀 설정
int green = 3; //green 핀 설정
int blue = 5; //blue 핀 설정

void setup()
{
  //LED 초기화 (off)
  analogWrite(red,0);
  analogWrite(green,0);
  analogWrite(blue,0);
}

void loop()
{
  //빨강 0.5초 켜기
  analogWrite(red,255);
  delay(500);
  analogWrite(red,0);
  
  //초록 0.5초 켜기  
  analogWrite(green,255);
  delay(500);
  analogWrite(green,0);
  
  //파랑 0.5초 켜기
  analogWrite(blue,255);
  delay(500);
  analogWrite(blue,0);
}