當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Arduino delay()用法及代碼示例

[時間]

說明

暫停程序指定為參數的時間量(以毫秒為單位)。 (一秒鍾有 1000 毫秒。)

用法

delay(ms)

參數

ms :暫停的毫秒數。允許的數據類型:unsigned long

返回

示例代碼

代碼在切換輸出引腳之前暫停程序一秒鍾。

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() 有很大的缺點。在延遲函數期間,無法繼續讀取傳感器、數學計算或引腳操作,因此實際上,它會使大多數其他活動停止。有關控製時序的替代方法,請參見Blink Without Delay 草圖,它會循環輪詢millis() 函數,直到經過足夠的時間。知識淵博的程序員通常避免使用delay() 來對超過 10 毫秒的事件進行計時,除非 Arduino 草圖非常簡單。

但是,當delay() 函數控製 Atmega 芯片時,某些事情會繼續進行,因為延遲函數不會禁用中斷。記錄出現在 RX 引腳上的串行通信,維持 PWM (analogWrite) 值和引腳狀態,並且 interrupts 將正常工作。

相關用法


注:本文由純淨天空篩選整理自arduino.cc大神的英文原創作品 delay()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。