Pare um Loop no Arduino
-
Pare o
void loop()
usando a bibliotecaSleep_n0m1
-
Pare o
void loop()
usandoexit(0)
-
Pare o
void loop()
usando um Loop Infinito
Este tutorial discutirá métodos para interromper um loop no Arduino. Existem dois tipos de loops no Arduino; um é o void loop()
que é fornecido por padrão e o outro que o usuário cria ali. Os loops criados pelo usuário podem ser encerrados facilmente usando o método break
. Para encerrar o void loop()
do Arduino, você pode usar os seguintes métodos.
Pare o void loop()
usando a biblioteca Sleep_n0m1
O método acima pode funcionar para todas as placas Arduino, mas o Arduino continuará a usar energia. Usando a biblioteca Sleep_n0m1
, você pode colocar sua CPU Arduino em hibernação permanente até reiniciá-la manualmente ou usando um temporizador. Observe que isso pode não funcionar para todas as placas 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
}
Certifique-se de usar a biblioteca Sleep_n0m1
depois de terminar com seu código. Este método consumirá apenas um pouco de energia. Use este link para mais detalhes.
Pare o void loop()
usando exit(0)
O void loop()
do Arduino pode ser encerrado usando o método exit(0)
após o seu código, mas observe que Arduino.cc
não fornece nenhum método para encerrar este loop, de modo que este método pode não funcionar para todas as placas Arduino.
void loop() {
// All of your code here
// exit the loop
exit(0); // 0 is required to prevent error.
}
Observe que após exit(0)
, seu Arduino irá parar de funcionar até que você o reinicie manualmente. Portanto, certifique-se de usar esse método depois que o código terminar sua tarefa.
Pare o void loop()
usando um Loop Infinito
O método acima pode não funcionar para todas as placas Arduino, então temos que usar outro método. O método de loop infinito funcionará para todas as placas Arduino, mas o Arduino permanecerá ativo e continuará consumindo energia. Neste método, você pode inserir um loop infinito após seu código. O Arduino processará seu código, entrará em um loop infinito e permanecerá lá até que você o reinicie manualmente.
void loop() {
// All of your code
while (1) { // infinite loop
}
}
Se o Arduino entrar no loop infinito, ele não retornará até que você o reinicie, portanto, certifique-se de usar o loop infinito depois de terminar o código.