フルカラーシリアルLEDテープ制御基盤
Adafruit_NeoPixel.h
フルカラーシリアルLEDテープを簡単に制御する事が出来るAdafruit_NeoPixel.hライブラリの使い方を調べてみました!
フルカラーシリアルLEDテープが0.5秒間隔で赤・緑・青と変化するプログラム例
#include <Adafruit_NeoPixel.h> Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, 3, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.show(); } void loop() { colorWipe(strip.Color(255, 0, 0), 500); // Red colorWipe(strip.Color(0, 255, 0), 500); // Green colorWipe(strip.Color(0, 0, 255), 500); // Blue } void colorWipe(uint32_t c, uint8_t wait) { for (uint16_t i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, c); strip.show(); delay(wait); } }
図1:プログラム例
#include <Adafruit_NeoPixel.h>
NeoPixelスケッチは、ヘッダファイルをインクルードすることから始まります。
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, 3, NEO_GRB + NEO_KHZ800);
NeoPixelオブジェクトを宣言します。この名前を後で参照しピクセルのストリップを制御します。
括弧内に3つのパラメータまたは引数があります。
1つ目:ストリップ内の連続したNeoPixelの数。この例では60に設定され、1メートルの中密度ストリップに等しいです。使用している実際の数と一致するようにこれを変更します。
3つ目:接続されているNeoPixelのタイプを示す値。ほとんどの場合、これをオフのままにして、2つの引数だけを渡すことができます。
strip.begin();
setup()関数内で、begin()を呼び出してNeoPixel出力のデータピンを準備します。
strip.show();
strip.show()は絶対に必要なわけではありません。この関数は、まだ色が設定されていないので、ピクセルにデータをプッシュアウトします。これは、以前のプログラムによって一部が点灯された場合、すべてのNeoPixelsを初期の「オフ」状態に初期化します。
colorWipe(strip.Color(255, 0, 0), 500);
colorWipe()15~20行目に記された関数を呼び出し、strip.Color()で指定した次の3つの引数、赤、緑、青の輝度レベルで表現されるピクセルカラー(0は最も暗く、255は最大輝度)と、待ち時間(この例では500ms)を全てのNeoPixelsへ反映します。
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.numPixels()を使用して、2行目で宣言したストリップのピクセル数を照会することができます。
strip.setPixelColor(i, c);
setPixelColor()はLEDに直接影響を与えません。次の行のstrip.show()を使用する事で初めてカラーデータをストリップに送信します。
strip.setBrightness(255);
strip.setBrightness()関数は、0~255の数値を1つの引数として取ります。
全てのNeoPixelsの明るさを0(暗い)~255(最大輝度)の範囲で調整出来ます。