delay()

名称

delay()

説明

パラメータで指定した時間(ミリ秒単位)だけプログラムを一時停止する。1秒は1000ミリ秒である。

書式

void delay(unsigned long ms);

引数

ms一時停止する時間(ミリ秒単位)

戻り値

なし。

使用例

このコードは出力ピンを反転させる前に1秒待つ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
int ledPin = 13;              // LED connected to digital pin 13

void setup() {
  pinMode(ledPin, OUTPUT);    // sets the digital pin as output
}

void loop() {
  digitalWrite(ledPin, HIGH); // sets the LED on
  delay(1000);                // waits for a second
  digitalWrite(ledPin, LOW);  // sets the LED off
  delay(1000);                // waits for a second
}

注意

delay()関数を使ってLEDを点滅させることは簡単だし、多くのスケッチではスイッチのチャタリングを防止するために少しの遅延を利用しているが、スケッチ でdelay()を利用することには重大な欠点がある。delay()関数を使っている間は、センサーから値を読み取ったり、計算をしたり、ピンの制御を行うことができない。その結果、ほとんどの動作を止めてしまう。タイミングを制御する別の方法を知りたいときには、millis()関数や参考のスケッチを参考にしてほしい。精通したプログラマは、スケッチが非常に単純であるとき以外は、10ミリ秒以上の時刻イベントを扱うときにはdelay()関数を利用しない。

delay()関数は割り込みを禁止しないので、delay()の実行中も、Atmegaチップの制御を行うための処理は実行される。RXピンを使ったシリアル通信は記録さ れ、PWM(analogWrite())波とピンの状態は保持され、割り込みは意図したとおりに動作する。

参照

利用例 Blink Without Delay

オリジナルのページ

https://www.arduino.cc/reference/en/language/functions/time/delay/

Last Revision: 2019/06/21

実装の解析

delay()

最終更新日

January 4, 2024

inserted by FC2 system