LEDを徐々に点灯させる
CoddyのArduinoジャーニー「出力」セクションの一部。レッスン 3/24。
変数には明るさを保持できます。loop()が実行されるたびに、その値をLEDに書き込み、少し増やして、しばらく待ちます。LEDは少しずつ明るくなります。
int brightness = 0;
void loop() {
analogWrite(9, brightness);
brightness = brightness + 5;
if (brightness > 255) {
brightness = 0;
}
delay(30);
}明るさの変数は、押された回数のカウンターと同じようにスケッチの先頭に置かれているため、loop()の1回の実行から次の実行まで値を保持します。loop()の中で作ると、実行されるたびに0に戻ってしまいます。
255はanalogWrite()が受け取る最大値なので、明るさがその値を超えると、ifによって0から再びフェードが始まります。
ステップ幅と待ち時間で速度が決まります。30 msのステップを約50回行うと、1.5秒かかります。
チャレンジ
簡単9番ピンのLEDを何度も繰り返し、徐々に明るくしましょう。
setup()の上で作成した変数に明るさを保存し、初期値を0にしますloop()内でanalogWrite()を使って書き込み、5を加えて30 ms待ちます- 255を超えたら、0に戻します
Runを押してLEDを観察し、次にCheckを押します。
自分で試してみよう
const int ledPin = 9;
// ここで明るさを表す変数を作り、初期値を0にする
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// 明るさの値を書き込み、5を加え、255を超えたら最初に戻し、30 ms待つ
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
出力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド