개요
네오픽셀은 순서대로 연결된 RGB LED의 집합이다.
아두이노의 디지털 출력핀 하나만으로 모든 LED를 각각 제어하는게 가능하다.
네오픽셀 모듈에는 5V, GND와 IN, OUT 단자가 있어
아두이노의 디지털 출력핀과는 IN 단자로 연결한다.
여러개의 모듈을 연결할 때는 OUT단자에 배선하여 다른 단자의 IN에 연결하면 된다. (물론 전원도)
전원용 출력단자가 별도로 없는 1픽셀짜리 모듈의 경우 전원단자를 입출력 모두 사용하면 된다.
간단한 결선도
제어 코드 샘플
#include <Adafruit_NeoPixel.h> #define LED_PIN 7 #define LED_COUNT 16 Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); int cnt; void setup() { // put your setup code here, to run once: strip.begin(); strip.setBrightness(100); strip.show(); cnt = 0; } void loop() { // put your main code here, to run repeatedly: if(cnt%60==0){ for(int i=0;i<LED_COUNT;i++){ strip.setPixelColor(i, random(128)+128, random(128)+128, random(128)+128); } } cnt++; delay(15);//about 1/60 sec }
※ 코드의 의도는 1초에 한 번 씩 LED 전체가 랜덤한 색으로 바뀌는 것인데, 그냥 delay(1000);을 쓰면 간단하다. 이렇게 한 이유는 1/60초에 사상이 고정된 레가시 게임 개발자의 습성..
네오픽셀 객체 클래스
Adafruit_NeoPixel 클래스 : 픽셀 갯수와 제어핀, 네오픽셀 타입을 지정한다.
네오픽셀 타입은 대체로 기본값인 NEO_GRB+NEO_KHZ800를 사용한다.
색상 제어
setPixelColor(픽셀인덱스, red, green, blue)
밝기 제어
setBrightness(0~255)
밝기 제어는 연결된 모듈 전체에 해당하고 픽셀 단위의 밝기 제어는 안되는데,
색상 제어에서 RGB값을 바꾸는 것으로 밝기를 제어할 수 있다.
예를 들어 같은 빨간색이라도 255,0,0이 128,0,0보다 밝다.
소비 전력
픽셀 하나 당 최대 60~80mA를 사용한다. (밝기 255, 색상 255,255,255)
자세한 스펙은 부품 사이트의 공식 제원을 참고하자.
동작 샘플
(코드와는 다른, 조금 더 복잡하게 작성해 본 경우)
댓글 없음:
댓글 쓰기