Pixelチェイサー
CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 15/24。
リングの周りを移動するライトは、一度に1つのピクセルだけが点灯し、ステップごとに次のピクセルへ移動します。for ループでピクセル番号を指定します。
for (int i = 0; i < 16; i++) {
ring.clear(); // 前のピクセルが消える
ring.setPixelColor(i, orange); // 新しいピクセルが点灯する
ring.show();
delay(100);
}clear() が先に実行されるため、次のピクセルを点灯させる同じ show() で、最後のピクセルが消灯します。これがないと、すべてのピクセルが点灯したままになり、リングが埋まってしまいます。
ループはピクセル15の後に停止し、loop() が再び実行されて、i は0から始まります。ライトはリングを何度も巡ります。
チャレンジ
簡単オレンジ色の光をリング上で走らせましょう:
- 0から15まで、一度に1つのピクセルを点灯させる
- 各ピクセルを100 ms点灯させる
- 15の後は、0から再開する
Runを押してから、Checkを押します。
自分で試してみよう
#include <Adafruit_NeoPixel.h>
// 16個のピクセル、データはピン6に接続
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t orange = ring.Color(255, 40, 0);
void setup() {
ring.begin();
}
void loop() {
// 0から15まで、ピクセルを1つずつ100 msずつ点灯させる
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ディスプレイとセンサーのすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド