SSブログ

202duino で NeoPixel [Arduino]

いまさらですが、NeoPixelというのがはやっているらしくて、、。

megaTinyCoreを入れたときにスケッチ例が入っていて、かっこいいのがいくつかありました。

とりあえず必要なところを確認して自分でもLEDを光らせてみました。



スケッチは以下のとおり。
#include <tinyNeoPixel_Static.h>
#define PIN            3
#define NUMPIXELS      12

uint8_t pixels[NUMPIXELS * 3];
tinyNeoPixel leds = tinyNeoPixel(NUMPIXELS, PIN, NEO_GRB, pixels);

void setup() {
  pinMode(PIN, OUTPUT);
}

void loop() {
  for (uint8_t i = 0; i < NUMPIXELS; i++) {
    for (uint8_t c = 0; c < 6; c++) {
        leds.setPixelColor( ( NUMPIXELS + i - c ) % NUMPIXELS, leds.Color(0, 0 , 31 >> c ) );
        //pixels[ ((NUMPIXELS + i - c) * 3 + 2) % (NUMPIXELS * 3) ] = 31 >> c;  // -118 bytes
    }
    leds.show();
    delay(100);
  }
}

ライブラリを使用せずに自前できるかどうか探ってみましたが、、、
・100ナノ秒オーダーでの操作が必要
・ライブラリを見てみるとアセンブラ使用
・ライブラリ自体は意外と簡素
・SPIでやる方法もあるらしい

というわけで素直にライブラリを使うのが賢明のよう。

ライブラリの実体の在処
%localappdata%\Arduino15\packages\megaTinyCore\hardware\megaavr\2.6.4\libraries\tinyNeoPixel
%localappdata%\Arduino15\packages\megaTinyCore\hardware\megaavr\2.6.4\libraries\tinyNeoPixel_Static

データ形式(旧と新バージョンあるらしい)
ws2812b_time.png

nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。