Menu
CoddyTech

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秒かかります。

challenge icon

チャレンジ

簡単

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待つ
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

出力のすべてのレッスン

自分で練習してみよう: Arduinoプレイグラウンド