NeoPixelの明るさ
CoddyのArduinoジャーニー「ディスプレイとセンサー」セクションの一部。レッスン 16/24。
NeoPixelは明るいです。ring.setBrightness(level)を使うと、すべての明るさを一度に下げられます。0は消灯、255は最大の明るさです。
これは、ボードのメモリに保存されている色をスケーリングすることで機能します。明るさが64(約4分の1)の場合、赤の値が255なら64として保存されます。ただし、スケーリングによって細部が失われます。明るさを0にすると、保存されている色はすべて0になり、その後明るさを上げてもスケーリングできる値が残っていないため、リングは暗いままです。
そのため、明るさを変更したら、その後に色を設定し直してください。
ring.setBrightness(level);
ring.fill(white); // 新しい明るさで保存される
ring.show();setBrightness()の後に設定した色は、保存時にスケーリングされます。
チャレンジ
中級A0のつまみはリングの調光器です:
map()を使って読み取り値を0から255までの明るさに変換しますring.setBrightness()で設定します- その後、
loop()の各実行でリングを白く塗りつぶして表示します
Runを押してつまみを回し、その後Checkを押します。
自分で試してみよう
#include <Adafruit_NeoPixel.h>
// 16個のピクセル、データはピン6に接続
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t white = ring.Color(255, 255, 255);
void setup() {
ring.begin();
}
void loop() {
int reading = analogRead(A0);
// ノブに合わせて明るさを設定し、リング全体を白く点灯させる
delay(50);
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ディスプレイとセンサーのすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド