Arduino eine Schleife stoppen
-
Beenden der
void loop()
mit derSleep_n0m1
-Bibliothek -
Beenden der
void loop()
mitexit(0)
-
Beenden der
void loop()
mit einer Endlosschleife
In diesem Tutorial werden Methoden zum Stoppen einer Schleife in Arduino erläutert. Es gibt zwei Arten von Schleifen in Arduino; Eine ist die void loop()
, die standardmäßig bereitgestellt wird, und die andere, die der Benutzer dort selbst erstellt. Vom Benutzer erstellte Schleifen können einfach mit der Methode break
beendet werden. Um die void loop()
von Arduino zu beenden, können Sie die folgenden Methoden verwenden.
Beenden der void loop()
mit der Sleep_n0m1
-Bibliothek
Die obige Methode funktioniert möglicherweise für alle Arduino-Boards, aber das Arduino verbraucht weiterhin Strom. Mit der Bibliothek Sleep_n0m1
können Sie Ihre Arduino-CPU in den permanenten Ruhezustand versetzen, bis Sie sie manuell oder mithilfe eines Timers zurücksetzen. Bitte beachten Sie, dass dies möglicherweise nicht für alle Arduino-Boards funktioniert.
#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
}
Bitte stellen Sie sicher, dass Sie die Bibliothek Sleep_n0m1
verwenden, nachdem Sie mit Ihrem Code fertig sind. Diese Methode verbraucht nur wenig Strom. Verwenden Sie diesen Link für weitere Details.
Beenden der void loop()
mit exit(0)
Die void loop()
von Arduino kann mit der Methode exit(0)
nach Ihrem Code beendet werden. Beachten Sie jedoch, dass Arduino.cc
keine Methode zum Beenden dieser Schleife bereitstellt, sodass diese Methode möglicherweise nicht funktioniert für alle Arduino Boards.
void loop() {
// All of your code here
// exit the loop
exit(0); // 0 is required to prevent error.
}
Bitte beachten Sie, dass Ihr Arduino nach exit(0)
nicht mehr funktioniert, bis Sie es manuell zurücksetzen. Stellen Sie also sicher, dass Sie diese Methode verwenden, nachdem der Code seine Aufgabe beendet hat.
Beenden der void loop()
mit einer Endlosschleife
Die obige Methode funktioniert möglicherweise nicht für alle Arduino-Boards, daher müssen wir eine andere Methode verwenden. Die Endlosschleifenmethode funktioniert für alle Arduino-Boards, aber das Arduino bleibt wach und verbraucht weiterhin Strom. Bei dieser Methode können Sie nach Ihrem Code eine Endlosschleife einfügen. Arduino verarbeitet Ihren Code, tritt in eine Endlosschleife ein und bleibt dort, bis Sie ihn manuell zurücksetzen.
void loop() {
// All of your code
while (1) { // infinite loop
}
}
Wenn Arduino in die Endlosschleife eintritt, kehrt es erst zurück, wenn Sie es zurücksetzen. Verwenden Sie daher nach Abschluss Ihres Codes unbedingt die Endlosschleife.