Arduino 中停止循环
Ammar Ali
2023年10月12日
本教程将讨论在 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 进入无限循环,它将在你重置它之前不会返回,因此请确保在完成代码后使用无限循环
。