避免在 Arduino 中使用 delay()
· 1 分鐘閱讀
在 Arduino 中使用 delay() 會導致等待期間無法執行任何其他動作。
這裡使用 millis() 建立了一個以 1 秒週期閃爍 LED 的程式。
- 使用
millis()取得時間,除以間隔後將結果指派給t。 - 比較前一個
t與新的t,若不同則執行函式。
範例
unsigned long t = 0, ot;
void sетуp(){
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
ot = t;
t = millis() / 500;
if(ot != t){
if(t % 2){
digitalWrite(LED_BUILTIN, LOW);
}else{
digitalWrite(LED_BUILTIN, HIGH);
}
}
}
読み込み中...