네오픽셀 RGB LED WS2812에 대해 알아보기 / 아두이노 조명 네오픽셀 / Adafruit Neopixel

 개요 (Introduction) 

 

DIY를 하다 보면 빠질 수 없는 것이 바로 '조명'입니다. 조명은 원시적으로는 주위를 밝히기 위한 목적으로 

사용해왔지만 최근에는 부가적으로 인테리어와 같은 장식효과로도 많이 사용되고있습니다. 

 

조명은 어떤 프로젝트를 진행하느냐에 따라 색상, 크기, 모양, 가격, 밝기 등을 고려해야하며, 그에 맞는 제품을 

찾아야합니다. 그러한 점에 있어 네오픽셀 LED는 가장(?) 무난하고 적당한 조명이 아닐까 싶습니다.


이번글에서는 네오픽셀에 대한 개념과 사용방법 등에 대해 알아보도록 하겠습니다.


-네오픽셀 LED가 들어간 아크릴 왕관-



 네오픽셀이란?


● 네오픽셀이란 무엇인가?

네오픽셀은 Adafruit사에서 붙인 이름으로, WS281x 칩이 내장된 LED를 말합니다.

LED는 다른 조명들에 비해 가격이 비싸지만 밝고, 수명이 길다는 장점이있습니다.

 

● 네오픽셀의 장점은?

각각의 LED에 대한 개별제어(색상, ON,OFF)가 가능하며, 연결 배선이 간단하단 점입니다. 네오픽셀는 

다양한 모양이 존재하며 어떤 모양이든 서로 연결이 가능합니다, 연결된 LED가 1개든 100개든 단 3개의

선만으로 모든 LED를 제어할 수 있습니다. 

 

● 네오픽셀의 단점은?

컨트롤러가 필요하다는 점입니다. 네오픽셀은 총 3개의 공통단자가 존재하며, 각각 VCC, GND, D핀입니다.

VCC와 GND로는 전원을 입력해주며, D핀으로는 디지털 신호를 입력해줘야합니다. 디지털 신호를 어떻게

보내주느냐에 따라 LED를 제어할 수 있습니다. 아두이노라는 컨트롤러로 사용하는 경우가 많으며, 사용방법은

예제가 많기때문에 크게 어렵진 않습니다. 

 

● 네오픽셀의 종류는?

■ 모양에 의한 분류 : 네오픽셀은 제품에 따라 링, 스트립, 스틱, 매트릭스, 소자 등 여러가지 타입이 존재합니다.

 

 내장된 LED 수량에 따른 분류 : 내장된 LED의 수량에 의해 분류할 수 있으며 크기와도 연관됩니다.


 RGBW와 RGB : LED가 RGB 3색으로 작동하는지 RGBW 4색으로 작동하는지에 따라 분류됩니다. 

전류 사용량과 연관됩니다.


 구동전압에 의한 분류 : 5V 12V 24V 등으로 나뉩니다.


 WS2812와 WS2813 : WS2813은 새로 나온버전입니다. WS2812의 경우 중간에 LED하나가 고장나면 그 

뒤의 LED까지 작동이 안되는데 WS2813의 경우 고장난LED만 건너뛰고 작동합니다.대신 WS2813은 B라는 

하나의 단자가 더 있습니다.

 

 색온도에 의한 분류 (3000K~6000K) : 모든 조명에 해당되는 부분입니다. 색온도에 따라 색이 다르게 나옵니다.

흰색을 나타내려할 때 3000k는 웜화이트, 6000K는 쿨화이트에 가까운 색을 나타냅니다.

691c34ab1516d0450faacd2837ead3b5_1485786

 

 

● 네오픽셀 가격은?

네오픽셀은 모양, 크기, 길이, 제조사 등에 따라 가격이 천차만별(?)입니다. 자세한 가격은 

링크에서 확인해보세요.  네오픽셀 리스트


● 네오픽셀 색상은?

RGB(빨,초,파) LED로 구성된 네오픽셀은 총 1677만 7216가지의 색을 표현할 수 있습니다. 

네오픽셀 LED는 RGB 각 색에 대해 256가지로 나누어 표현할 수 있으며, 각각의 색을 섞어 

표현할 수 있는 색은 다음과 같습니다.  R(256) x G(256) x B(256) = 1677만 7216


● 네오픽셀 RGB LED와 네오픽셀 RGBW LED의 차이는? 그리고 전류 사용량

RGB LED는 R,G,B 3가지 색상을 표현할 수 있으며, RGBW는 W를 추가하여 R,G,B,W 4가지 

색상을 표현할 수 있습니다. RGB에서 W(White) 색상을 만들기 위해서는 R,G,B를 똑같이 섞어

야합니다. 즉, RGB 3개의 LED를 모두 켜야한다는 말이며, 이는 W 하나를 켰을 때보다 전류 

소모량이 3배가 됩니다. 

 

R,G,B를 최대 밝기로 모두 켰을 때 : 60mA를 소모하여 W를 켤 수 있음.

W하나를 최대 밝기로 켰을 때 : 20mA를 소모하여 W를 켤 수 있음.


네오픽셀 사용시 LED를 많이 사용할 경우 컨트롤러의 전원만으로는 작동이 불가능한 경우가 있습니다.

이럴 경우 신호는 컨트롤러에서 보내주지만 전원은 외부에서 따로 넣어줘야합니다. [5V 2.5A 보러가기]


네오픽셀 RGBW와 네오픽셀 RGB는 사용되는 라이브러리가 다릅니다. 프로그래밍시 주의하세요.

 

 

 

 

 

 네오픽셀 사용법

 

네오픽셀 LED를 사용하기 위해서는 네오픽셀과 컨트롤러 보드를 연결해줘야하며, 컨트롤러보드에서 네오픽셀로 신호를 

보내줄 수 있도록 해야합니다. 아래에서는 두가지 방법을 소개합니다.

 

● 네오픽셀 전용 컨트롤러를 이용하는 방법

컨트롤러에 프로그램이 내장되어있어 프로그래밍이 불필요하며, 연결만 해주면 네오픽셀을 작동시킬 수 있습니다.

하지만 색상, ON OFF 제어가 불가능합니다. (프로그램 수정 불가) [컨트롤러 보러가기 클릭]

 

 

● 아두이노를 이용하는 방법

직접 프로그래밍하여 네오픽셀을 제어해줄 수 있습니다. 처음하기에는 다소 복잡할 수 있지만, 사용방법만 

숙지하면 각각의 LED에 대한 색상이나 ON,OFF 등을 연출하여 멋진 작품을 만들 수 있습니다. 

 

미리 숙지해야할 내용 (아두이노에 대한 전반적인 지식이며.. 처음하시는 분들에겐 좀 많네요..)

아두이노 보드란?

아두이노 우노 R3 살펴보기

아두이노 통합개발환경(IDE) 설치하기

통합개발환경 IDE 기능 살펴보기

 

 

● 아두이노를 이용하는 방법 (회로도 연결)

아래와 같이 연결합니다. 네오픽셀은 어떤타입이던 공통적으로 5V(VCC) G(GND) D(DO혹은 DI) 3가지

단자가 존재합니다. 5V와 GND는 +,- 와 비슷한 개념으로 보면되며, 아두이노의 5V, GND에 그대로 연결해

주도록 합니다. D의 경우 DI는 Digital IN, DO는 Digital OUT을 의미합니다. 즉, 디지털 신호를 입력하는 

향인지, 출력하는 방향인지를 의미하며 위에서는 아두이노 → 네오픽셀로 디지털 신호를 보내므로 아두이노

디지털 핀과 네오픽셀 DI핀을 연결해주도록 합니다. DO핀은 네오픽셀끼리 연결할 때 쓰면 됩니다.


 

● 아두이노를 이용하는 방법 (프로그래밍)

프로그램을 직접 만들 필요는 없습니다. 이미 만들어진 코드(라이브러리)를 Adafruit사에서 제공하고 

있기 때문입니다. 우리들이 해야할 것은 코드의 일부분(색상, 밝기, ON,OFF 등)을 내 입맛에 맛도록

변경해주고, 아두이노에 업로드만 해주면됩니다.

 

 라이브러리란?

라이브러리는 이미 만들어져있는 샘폴 코드를 말합니다. 아두이노는 오픈소스이다보니 사용자들끼리

코드를 공유, 배포하는 경우가 많습니다. 네오픽셀 또한 Adafruit사에서 직접 코드를 제공하기 때문에

우리는 라이브러리를 사용하여 네오픽셀을 제어할 수 있습니다.

 

라이브러리는 스케치파일(.ino확장자)로만 이루어져있는 경우도 있지만 C소스코드파일(.cpp 확장자)와

헤더파일(.h 확장자)가 포함된 경우가 있습니다. 이럴 경우엔 각 파일을 지정된 폴더에 위치시켜야

라이브러리를 사용할 수 있습니다. 네오픽셀 라이브러리가 이런 경우이며, 아래와 같이 실행해보세요.


1. Adafruit 네오픽셀 라이브러리 다운로드 받기 클릭 (RGB 및 RGBW 모두 포함)

2. Zip파일의 압출을 푼 후 해당 폴더를 다음 위치에 붙여넣기합니다.

 

 

3. 통합개발환경을 실행한 후 파일 - 예제를 들어가면 Adafruit Neopixel 라이브러리를 확인할 수 있습니다.

 

 

4. 앞에서 언급했듯 색상, 컬러, ON,OFF 등에 대한 코드를 내 입맛에 맞도록 변경해줘야합니다. 

이부분에 대한 코드를 이해하고 변경해보도록 하겠습니다.

 

네오픽셀 RGB의 경우 라이브러리(standtest)를 불러옵니다.

네오픽셀 RGBW의 경우 라이브러리(RGBWstrandtest)를 불러옵니다.

 

■디지털 핀 설정하기 (RGB, RGBW 동일)

#define PIN6 - 연결된 디지털 핀을 설정합니다. 아두이노와 네오픽셀이 연결된 디지털 핀을 설정해주면됩니다.


■네오픽셀 LED숫자 설정 (RGB, RGBW 동일)

Adafruit_Neopixel Strip = Adafruit_Neopixel(a, b, c + d);와 같이 되어있습니다. a부분을 지우고 LED숫자를 입력해주면됩니다.


네오픽셀 밝기 설정 (RGBW만)

RGBW의 경우 #define BRIGHTNESS 50 이란 부분이 있습니다. 뒤에 숫자를 수정하여 밝기를 수정할 수 있습니다.

RGB는 색상 설정시 설정할 수 있습니다. (아래에서 설명)

 

이제 쭉 내리거나 알트+F에 void loop()를 검색해줍니다.


void loop() 

{

코드

}

와 같이 되어있습니다.


여기서 들어가는 코드는 지속적으로 반복될 코드입니다. 즉, 이부분에 적어주는 코드가 실제로 반복되어 작동됩니다.

최초 입력되어있는 colorWipe, Rainbow, TheaterChase 등은 Adafruit에서 만들어놓은 모드(Mode)입니다. 옆의 숫자를 

어떻게 입력하느냐에 따라 어떤 색상으로, 몇 번째 LED를 Rainbow모드 혹은 colorWipe모드 등으로 작동하겠다는 의미

입니다. 필요없다면 { } 사이에 코드를 모두 지워주세요.

 

이제 코드를 입력해봅니다.


void loop() 

{

strip.begin(); // 네오픽셀 제어를 시작합니다.

strip.show(); // 네오픽셀을 초기화 해줍니다.

strip.setPixelColor(a,b,c,d,e);

}

 

■네오픽셀 개별제어 (RGB, RGBW 동일)

strip.setPixelColor(a,b,c,d,e);

a - 몇 번째 LED를 제어할지 입력합니다. (0이 첫번째, 1이 두번째....0부터시작)

b부터 e까지 - RGBW 순서대로 0부터 255까지의 밝기로 켜겠다는 의미입니다. 

e는 RGBW에서만 적용되며 입력해도되고 안해도됩니다.


즉 strip.setPixelColor(30,255,0,255,0); 이면 30번째 LED를 R을 255만큼, B를 255만큼 켜겠다는 의미입니다.

 

 

이상 네오픽셀 사용법에 대해 소개해드렸으며, 추가적으로 궁금하신 점은 으로 문의주세요. ^^

 

 

메카리워즈 Image Map


모바일 버전으로 보기