Ferma un loop Arduino
-
Ferma il
void loop()
usando la libreriaSleep_n0m1
-
Ferma il
void loop()
usandoexit(0)
-
Ferma il
void loop()
usando un loop infinito
Questo tutorial discuterà i metodi per interrompere un bucle in Arduino. Ci sono due tipi di loop in Arduino; uno è il void loop()
fornito di default e l’altro che l’utente crea proprio lì. I loop creati dall’utente possono essere terminati facilmente utilizzando il metodo break
. Per terminare il void loop()
di Arduino, puoi usare i seguenti metodi.
Ferma il void loop()
usando la libreria Sleep_n0m1
Il metodo sopra potrebbe funzionare per tutte le schede Arduino, ma Arduino continuerà a utilizzare energia. Utilizzando la libreria Sleep_n0m1
, puoi mettere la tua CPU Arduino in modalità di sospensione permanente fino a quando non la ripristini manualmente o usando un timer. Tieni presente che potrebbe non funzionare per tutte le schede 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
}
Assicurati di utilizzare la libreria Sleep_n0m1
dopo aver terminato con il codice. Questo metodo attirerà solo un po’ di potenza. Usa questo link per maggiori dettagli.
Ferma il void loop()
usando exit(0)
Il void loop()
di Arduino puòessere terminato usando il metodo exit(0)
dopo il tuo codice, ma nota che Arduino.cc
non fornisce alcun metodo per terminare questo loop, quindi questo metodo potrebbe non funzionare per tutte le schede Arduino.
void loop() {
// All of your code here
// exit the loop
exit(0); // 0 is required to prevent error.
}
Nota che dopo exit(0)
, il tuo Arduino smetterà di funzionare fino a quando non lo ripristinerai manualmente. Quindi assicurati di utilizzare questo metodo dopo che il codice ha terminato il suo compito.
Ferma il void loop()
usando un loop infinito
Il metodo sopra potrebbe non funzionare per tutte le schede Arduino, quindi dobbiamo usare un altro metodo. Il metodo del bucle infinito funzionerà per tutte le schede Arduino, ma Arduino rimarrà sveglio e continuerà a consumare energia. In questo metodo, puoi inserire un bucle infinito dopo il tuo codice. Arduino elaborerà il tuo codice, entrerà in un bucle infinito e rimarrà lì finché non lo ripristinerai manualmente.
void loop() {
// All of your code
while (1) { // infinite loop
}
}
Se Arduino entra nel bucle infinito, non tornerà fino a quando non lo ripristini, quindi assicurati di utilizzare bucle infinito dopo aver terminato con il codice.