NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDEの使い方(Adafruit_NeoPixel.h)

イメージ 1
フルカラーシリアル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
図1:プログラム例
 
 上記プログラムを例にArduino IDEで使用するAdafruit_NeoPixel.hライブラリー独自の関数とその機能は以下の通りです。
 
 
#include <Adafruit_NeoPixel.h>
  NeoPixelスケッチは、ヘッダファイルをインクルードすることから始まります。
 
 
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, 3, NEO_GRB + NEO_KHZ800);
 NeoPixelオブジェクトを宣言します。この名前を後で参照しピクセルのストリップを制御します。
 括弧内に3つのパラメータまたは引数があります。
 1つ目:ストリップ内の連続したNeoPixelの数。この例では60に設定され、1メートルの中密度ストリップに等しいです。使用している実際の数と一致するようにこれを変更します。
 2つ目:NeoPixelストリップ(または他のデバイス)が接続されているArduinoのピン番号。ここではシンボルPINを宣言してここで名前を参照しています。
 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);
 strip.setPixelColor(i, red, green, blue)の最初の引数(この例ではi)は、ストリップに沿ったピクセル番号で、Arduinoに最も近い0から始まります。 30ピクセルのストリップがある場合、0〜29の番号が付けられます。
 forループを使用してコード内のさまざまな場所を表示し、ループカウンタ変数をこの関数のピクセル番号として渡して、複数のピクセルの値を設定します。
 setPixelColor()はLEDに直接影響を与えません。次の行のstrip.show()を使用する事で初めてカラーデータをストリップに送信します。
 
 
strip.getPixelColor()
 strip.getPixelColor()関数は以前に設定した指定ピクセルカラー値(32bit)を返します。
 
 
strip.setBrightness(255);
 strip.setBrightness()関数は、0~255の数値を1つの引数として取ります。
 全てのNeoPixelsの明るさを0(暗い)~255(最大輝度)の範囲で調整出来ます。
 
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る