아두이노 코딩-33: 3색 RGB LED PWM analogWrite 제어

in #kr7 years ago (edited)

noname01.png

RGB LED 즉 3색 LED는 내부적으로 3개의 LED 로 구성되어 있다. 각각 전압을 가하면 색상을 볼 수 있으며 이들이 서로 근접해 위치해 있기 때문에 동시에 2개를 ON 시키면 빛의 합성 색이 얻어진다. 전류제한 저항은 220Ω 1개 사용으로 충분하다.

LED를 ON 시키기 위해서는 digitalWrite() 명령과 analogWrite() 명령 2가지 종류가 있다. LED 의 밝기를 조절하려면 당연히 analogWrite() 명령을 사용하여야 하며 아두이노 우노의 핀 다이아그램을 참조하여 물결 표시(∼)가 있는 즉 PWM이 가능한 핀 즉 3,5,6,9,10,11 중에 배선해야 한다. RGB 3색 표현이 가능한 RGB LED 를 ON 시키기 위해서 PWM 이 가능한 9,10,11 번 핀을 택해 배선하도록 한다. RGB 3색 외에도 RGB 의 혼합도 가능하다. 한편 다리 길이가 가장 긴 RGB LED 의 COMMON 선은 220Ω 저항과 연결하되 전류 제한 저항의 다른 한쪽은 GND 즉 0V에 흑색으로 배선한다. 아래에 첨부된 꾸며진 배선 사진을 참조한다.

noname02.png

PWM 이 가능한 물결 표시(∼)가 있는 디지털 9번 핀에 청색, 10번 핀에 녹색, 11번 핀에 빨간색을 배선한다.

setup()에서 컴파일 업로딩만 일어나며 아두이노와 PC 간에 별다른 통신이 필요치 않으므로 통신속도를 설정할 필요가 없다. RGB 로 설정된 해당 핀들의 모드를 출력으로 선정한다.

noname03.png

loop()에서 setColor(R,G,B) 서브루틴을 호출한다. setColor(R,G,B) 루틴은 loop()에서 R, G, B 의 정수 값을 설정하여 호출하게 되면 해 당 핀 별로 analogWrite() 명령에 의해 LED를 ON 시킨다. 현재 RGB 각각의 값은 255 단위로 설정되는데 이 값의 크기는 analogWrite() 명령이 수용할 수 있는 최대 밝기 값에 해당한다. 발기를 조정하려면 setColor() 에서 입력해 주는 파라메타 값을 255 가 아닌 그 이하의 값을 설정해 주면 된다.

RGB 색상이 아닌 노란색은 빨간색과 녹색의 합성 색이며 빨간색과 청색의 합성은 보라색, 녹색과 청색의 합성은 연한 청색이 된다.

noname04.png

다음 동상을 관찰해 보자. LED 가 너무 밝으므로 주위로 퍼저 나오는 빛살을 주의해 보면 색상을 알 수 있다.

//RGB_LED_01

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

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

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

}

void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}//끝

Sort:  

Hello codingart!

Congratulations! This post has been randomly Resteemed! For a chance to get more of your content resteemed join the Steem Engine Team

Would you want to get the Real Time STEEM Price with iOS App? Try our new app!

Steem Current

https://itunes.apple.com/us/app/steemcurrent-real-time-price/id1356919022?ls=1&mt=8

STEEM Current provides latest price of STEEM real-time. It’s the best app for get real-time STEEM price.

It also can get:

  • Price in BTC
  • Hour Change
  • Day Change
  • Week Change
  • 24 Hour Volume
  • Market Cap
  • Market Cap Rank
  • Available Support
  • Total Support
  • Your Account Value

5월 다시 파이팅해요!
호출에 감사드립니다!

pairplay 가 kr-dev 컨텐츠를 응원합니다! :)

Coin Marketplace

STEEM 0.14
TRX 0.35
JST 0.035
BTC 116054.77
ETH 4724.59
SBD 0.86