速くなる点滅
CoddyのArduinoジャーニー「はじめての回路」セクションの一部。レッスン 17/22。
delay(waitTime) は、その時点で waitTime に入っている値だけ待ちます。スケッチの実行中に変数を変更すると、点滅もそれに合わせて変わります。
waitTime = waitTime - 100; // 次の点滅は100 ms短くなるこれを loop() の最後に置くと、点滅の間隔は毎回、前回より短くなります。
しばらく実行したときに何が起こるか見てみましょう。待ち時間は 0 まで縮まり、その後は 0 未満になります。delay() は負の時間だけ待つことはできません。-200 を約 49 日に相当する非常に大きな数として読み取るため、LED が止まったように見えます。スケッチは、いつ縮めるのを止めるかを自分で決める必要があります。それについては次のレッスンで説明します。
チャレンジ
簡単ピン 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を小さくする
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
はじめての回路のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド