202duino で NeoPixel [Arduino]
いまさらですが、NeoPixelというのがはやっているらしくて、、。
megaTinyCoreを入れたときにスケッチ例が入っていて、かっこいいのがいくつかありました。
とりあえず必要なところを確認して自分でもLEDを光らせてみました。
スケッチは以下のとおり。
ライブラリを使用せずに自前できるかどうか探ってみましたが、、、
・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
データ形式(旧と新バージョンあるらしい)
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
データ形式(旧と新バージョンあるらしい)
2023-07-15 22:41
nice!(0)
コメント(0)
コメント 0