공작소굴

 Adafruit 사의 네오픽셀(Neopixel)컬러 LED와 제어칩을 하나의 모듈로 만든 형태1개의 신호만으로 밝기와 색상을 바꿀 수 있으며, 이론상 무한대의 네오픽셀을 연결해 움직이는 무지개, 사운드 이퀄라이저 등 다양한 연출이 가능한 신박한 LED모듈입니다.

 

 모양과 크기도 여러가지로 출시되어서 다양한 분야에서 재미있고 유용하게 활용할 수 있습니다.

 

다양한 크기와 모양의 네오픽셀들 (출처:www.adafruit.com)

 좀 더 자세한 내용은 Adafruit 홈페이지에서 확인해 보세요.

 

다양한 네오픽셀의 종류와 쓰임들을 Adafruit 홈페이지에서 확인해 보세요.

 

Adafruit Industries, Unique & fun DIY electronics and kits

Miniature Wired LEDs - 0805 SMT LED - Purple - 5 pack

www.adafruit.com

 

 이번 포스팅에서는 아두이노 프로젝트에서 네오픽셀을 사용할 때 필요한 라이브러리를 알아보고, 대표적인 예제를 분석해 보도록 하겠습니다.

 

 예제 파일을 분석하는 이유와 방법에 대해서 알고 싶다면, 아래 포스트를 확인해 주세요.

 

아두이노 라이브러리의 예제 파일 활용 방법 (feat. LiquidCrystal.h)

 아두이노 프로젝트를 진행하다보면 '분명히 좀 전까지는 잘 됐는데 왜 갑자기 안되지?'라고 할 때가 100이면 100 발생합니다. 제 경우에는 처음에는 Undo (Ctrl + Z)를 하듯 살짝씩 건드려 보면서 해

mechacave.tistory.com

 

네오픽셀 라이브러리

 아두이노의 라이브러리 매니저에서 adafruit neopixel을 찾아 설치합니다. 이 라이브러리는 한 줄로 이어진 네오픽셀을 사용할 때 주로 사용되며, 가장 기본이 되는 네오픽셀 라이브러리라고 생각하시면 됩니다. 

 

Adafruit NeoPixel 라이브러리

 

 위의 그림처럼 [설치] 버튼은 비활성화 되어 있고 [업데이트] 버튼이 활성화 되어 있다면 이미 라이브러리가 설치되어 있는 것입니다. 설치가 완료되면, 스케치의 [예제] 메뉴에서 네오픽셀을 동작시킬 수 있는 다양한 예제들을 볼 수 있습니다.

 그 중에서 strandtest 라는 예제를 자세하게 살펴보도록 하겠습니다.

 

strandtest.ino

strand는 '한 가닥' 이라는 뜻으로 한 줄로 된 네오픽셀에 대한 테스트 예제입니다. 이 예제만 잘 파악하고 활용하셔도 큰 도움이 되실거에요.

 

아두이노 스케치에서 확인할 수 있는 네오픽셀 예제

 

1. 프로그램 소개 주석

// A basic everyday NeoPixel strip test program.

// NEOPIXEL BEST PRACTICES for most reliable operation:
// - Add 1000 uF CAPACITOR between NeoPixel strip's + and - connections.
// - MINIMIZE WIRING LENGTH between microcontroller board and first pixel.
// - NeoPixel strip's DATA-IN should pass through a 300-500 OHM RESISTOR.
// - AVOID connecting NeoPixels on a LIVE CIRCUIT. If you must, ALWAYS
//   connect GROUND (-) first, then +, then data.
// - When using a 3.3V microcontroller with a 5V-powered NeoPixel strip,
//   a LOGIC-LEVEL CONVERTER on the data line is STRONGLY RECOMMENDED.
// (Skipping these may work OK on your workbench but can fail in the field)
// 이 프로그램은 가장 기본이 되는 테스트 프로그램입니다.

// 가장 안정적인 작동을 위한 네오픽셀 연결/활용 방법 :

// - NeoPixel의 (+) 와 (-) 단자 사이에 1000uF 커패시터를 추가합니다. 
▶ 갑작스러운 전원의 on/off에 대비하여 네오픽셀의 안정적인 on/off 를 위함입니다.

// - 아두이노 등 컨트롤러보드와 연결 시 배선 길이를 최소화합니다.
▶ 아무래도 1개의 핀만을 사용하여 데이터를 전송하는 방식이므로 가장 멀리 있는 네오픽셀까지 데이터를 전달하는 데에는 시간이 걸립니다. 배선길이를 짧게 하여 그 시간차이를 최대한 줄이려는 목적입니다. 노이즈도 방지할 수 있구요.

// - 네오픽셀의 (DIN)에 300~500 옴의 저항을 연결합니다.
▶ LED의 적정 전압을 맞춰주기 위함입니다.

// - 동작을 하고 있는 회로(LIVE CIRCUIT)에 네오픽셀을 연결하지 마십시오. 부득이한 경우 항상 GND(-)를 먼저 연결한 다음 (+)를 연결하고, 마지막으로 데이터(DIN)를 연결합니다.
▶ 이미 전원이 들어가 있는 회로에 외부 모듈(센서 or 엑츄에이터 등)을 연결하는 것은 항상 조심해야합니다.

// - 5v 전원이 공급되는 NeoPixel을 3.3v 로 동작하는 마이크로컨트롤러에 연결할 때에는 (DIN) 단자의 신호를 5v로 높여주는 회로 (Logic Level Converter)를 사용하는 것을 강력히 추천합니다. (이를 건너뛰면 워크벤치(테스트)에서는 정상적으로 작동하지만 현장에서는 실패할 수 있음)
▶ 전원레벨과 신호레벨을 맞춰주는 것이 정석입니다.
▶ 테스트할 때는 됐는데 현장에 적용했더니 안 되더라... 참 무서운 말입니다. 현장에서 바로 잘 된 적이 없죠.

 

 일반적인 아두이노 우노/나노/메가 등 5v 레벨에서 동작하는 컨트롤러10cm 내외의 점퍼선을 사용하여 NeoPixel을 연결하는 경우 무리없이 테스트가 가능합니다. 

 

2. 전처리 및 setup(), loop()

strandTest 예제의 전처리 부분과 setup(), loop() 함수는 다음 포스팅을 확인해 주세요.

 

[네오픽셀] 아두이노 Adafruit NeoPixel 예제 파일 분석 (2/3)

아두이노에서 네오픽셀을 사용할 때 유용하게 쓰이는 Adafruit_NeoPixel 라이브러리의 대표적인 예제인 strandtest.ino를 살펴보고 있습니다. strandtest.ino 1. 네오픽셀 소개 및 strandtest.ino 프로그램 소개..

mechacave.tistory.com

 

3. 네오픽셀 연출 함수 상세보기

네오픽셀로 다양한 연출을 하는 함수들을 살펴보려면 다음 포스팅을 확인해 주세요.

 

[네오픽셀] 아두이노 Adafruit NeoPixel 예제 분석 (3/3)

 Adafruit_NeoPixel 라이브러리의 대표적인 예제인 strandtest.ino를 살펴보고 있습니다. 이번 포스팅에서는 예제에 있는 다양한 연출 함수들을 상세히 살펴보도록 하겠습니다. strandtest.ino 1. 네오픽셀

mechacave.tistory.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band