こんばんは!
今回はプログラムを一時停止する関数delay()についてです。
delay()
delay()関数はパラメータとして指定された時間分プログラムを一時停止します。
パラメータの単位はミリ秒です。例として1.5秒間プログラムを停止したい場合には以下のように記述します。
1 | delay(1500); |
delay()は他のセンサーからの入力の値を読み取ることや、計算などの処理が止まってしまうため、コードが長くなってプログラムが複雑になる場合にはあまり長い時間のdelay()は避けた方がいいです。
Arduinoの公式リファレンスには「より知識の豊富なプログラマーは通常10ミリ秒より長いイベントのタイミングの使用を避けます。」と記述してあるので10ミリ秒以上のdelay()は避けた方が良いみたいですね。
ちなみにattachInterrupt()によって呼び出された関数ではこのdelay()を使用することはできないので注意が必要です。
attachInterruptについてはこちらを御覧ください。
まとめ
今回はdelay()関数について説明しました。
一見便利な関数ですが、割り込みや一部のプログラム以外は全て止まってしまうので仕様の際には注意が必要です。
時間によって処理を変えたい場合などはmillis()関数やmicros()関数を使うことを検討してみてもいいかもしれません。
今回はこれで終わります。
ではまた!