delay()
ここはdelay()
関数のページです
説明
パラメータで指定した時間(ミリ秒)だけ、プログラムを一時停止します
1000
を指定すると1秒になります
構文
delay(ms)
パラメータ
ms
:停止させたい時間(ミリ秒)。型はunsigned long
返り値
なし
サンプルコード
このコードでは、出力ピンをトグルする前に、プログラムを1秒間停止させます
int ledPin = 13; // 13番ピンに接続されたLED
void setup() {
pinMode(ledPin, OUTPUT); // 使用するピンを出力に設定
}
void loop() {
digitalWrite(ledPin, HIGH); // LEDをオンに設定
delay(1000); // 1秒停止
digitalWrite(ledPin, LOW); // LEDをオフに設定
delay(1000); // 1秒停止
}
注意点
delay関数でLEDを点滅させるのは簡単で、多くのスケッチがスイッチのデバウンスなどのタスクに短い遅延を使用していますが、スケッチの中でdelay()
を使用することには大きな欠点があります。delay関数の実行中は、センサーの読み取り、数学的計算、ピンの操作などを行うことができないため、事実上、他のほとんどのアクティビティを停止させることになります
タイミングを制御する別のアプローチとして、Blink Without Delayスケッチを参照してください。このスケッチでは、十分な時間が経過するまでmillis()
関数をポーリングしながらループしています。Arduinoスケッチが非常に単純でない限り、10ミリ秒以上のイベントのタイミングにdelay()
を使用することは、より知識のあるプログラマには通常避けられるでしょう
しかし、delay関数がAtmegaチップを制御している間、あることが進行します。delay関数は割り込みを無効にしないためです。RXピンに現れるシリアル通信は記録され、PWM(analogWrite)の値とピンの状態は維持され、割り込みはあるべきように動作します
出典
このページはArduino公式のページを翻訳したものです(一部意訳を含みます)