delay()
名称
delay()
説明
パラメータで指定した時間(ミリ秒単位)だけプログラムを一時停止する。
書式
コード内で、指定した時間の停止を開始するには、以下の関数を使う。
delay(ms)
C言語シグネチャ(avr)
void delay(unsigned long ms);
引数
この関数は以下の引数を受け付ける。
| ms | 一時停止する時間(ミリ秒単位)。データ型: unsigned long。 |
戻り値
なし。
コード例
このコードは出力ピンを反転させる前に1秒待つ。
|
|
注意
delay()関数を使ってLEDを点滅させることは簡単だし、多くのスケッチではスイッチのチャタリングを防止するために少しの遅延を利用しているが、スケッチ でdelay()を利用することには重大な欠点がある。delay()関数を使っている間は、センサーから値を読み取ったり、計算をしたり、ピンの制御を行うことができない。その結果、ほとんどの動作を止めてしまう。
タイミングを制御する別の方法を知りたいときには、millis()関数や参考のスケッチを参考にしてほしい。精通したプログラマは、スケッチが非常に単純であるとき以外は、10ミリ秒以上の時刻イベントを扱うときにはdelay()関数を利用しない。
delay()関数は割り込みを禁止しないので、delay()の実行中も、Atmegaチップの制御を行うための処理は実行される。RXピンを使ったシリアル通信は記録さ れ、PWM(analogWrite())波とピンの状態は保持され、割り込みは意図したとおりに動作する。
参照
オリジナルのページ
https://docs.arduino.cc/language-reference/en/functions/time/delay/
実装の解析
最終更新日
August 16, 2026