Menu
CoddyTech

速くなる点滅

CoddyのArduinoジャーニー「はじめての回路」セクションの一部。レッスン 17/22。

delay(waitTime) は、その時点で waitTime に入っている値だけ待ちます。スケッチの実行中に変数を変更すると、点滅もそれに合わせて変わります。

waitTime = waitTime - 100;   // 次の点滅は100 ms短くなる

これを loop() の最後に置くと、点滅の間隔は毎回、前回より短くなります。

しばらく実行したときに何が起こるか見てみましょう。待ち時間は 0 まで縮まり、その後は 0 未満になります。delay() は負の時間だけ待つことはできません。-200 を約 49 日に相当する非常に大きな数として読み取るため、LED が止まったように見えます。スケッチは、いつ縮めるのを止めるかを自分で決める必要があります。それについては次のレッスンで説明します。

challenge icon

チャレンジ

簡単

ピン 13 の LED をどんどん速く点滅させましょう:

  • 先頭で、int waitTime = 1000; を作成します
  • loop() 内で、両方の待ち時間に delay(waitTime) を使って点滅させます
  • loop() の最後に、waitTime を 200 小さくします

Run を押し、動作が停止するまで見てから、Check を押します。

自分で試してみよう

// ここでwaitTimeを定義する

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
  // waitTimeを小さくする
}
quiz icon腕試し

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

はじめての回路のすべてのレッスン

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