Arduino 中停止迴圈
Ammar Ali
2023年1月30日
2021年4月29日
本教程將討論在 Arduino 中停止迴圈的方法。Arduino 中有兩種迴圈:一個是預設情況下提供的 void loop()
,而另一個是使用者在其中建立的。使用者建立的迴圈可以使用 break
方法輕鬆結束。要結束 Arduino 的 void loop()
,可以使用以下方法。
使用 Sleep_n0m1
庫停止 void loop()
上面的方法可能適用於所有 Arduino 板,但是 Arduino 將繼續使用電源。使用 Sleep_n0m1
庫,你可以將 Arduino CPU 置於永久睡眠狀態,直到你手動或使用計時器對其進行重置。請注意,這可能不適用於所有 Arduino 開發板。
#include <Sleep_n0m1.h>
Sleep sleep;
unsigned long sleepTime; //how long you want the Arduino to sleep
void setup()
{
sleepTime = 50000; //set sleep time in ms, max sleep time is 49.7 days
}
void loop()
{
// Your Code
sleep.pwrDownMode(); //set sleep mode
sleep.sleepDelay(sleepTime); //sleep for: sleepTime
}
完成程式碼後,請確保使用 Sleep_n0m1 庫
。這種方法只會消耗一點能量。使用此連結瞭解更多詳細資訊。
使用 exit(0)
停止 void loop()
可以在程式碼後使用 exit(0)
方法來結束 Arduino 的 void loop()
,但是請注意,Arduino.cc
沒有提供任何方法來結束此迴圈,因此該方法可能不起作用適用於所有 Arduino 開發板。
void loop() {
// All of your code here
// exit the loop
exit(0); //0 is required to prevent error.
}
請注意,exit(0)
之後,你的 Arduino 將停止工作,直到你手動將其重置。因此,請確保在程式碼完成其任務之後使用此方法。
使用無限迴圈停止 void loop()
上面的方法可能不適用於所有的 Arduino 板,因此我們必須使用另一種方法。無限迴圈方法將適用於所有 Arduino 板,但是 Arduino 將保持清醒狀態並繼續消耗功率。在此方法中,你可以在程式碼後插入無限迴圈。Arduino 將處理你的程式碼,進入無限迴圈並停留在那裡,直到你手動將其重置。
void loop(){
// All of your code
while(1){ // infinite loop
}
}
如果 Arduino 進入無限迴圈,它將在你重置它之前不會返回,因此請確保在完成程式碼後使用無限迴圈
。
Author: Ammar Ali