Pare um Loop no Arduino

Ammar Ali 12 outubro 2023
  1. Pare o void loop() usando a biblioteca Sleep_n0m1
  2. Pare o void loop() usando exit(0)
  3. Pare o void loop() usando um Loop Infinito
Pare um Loop no Arduino

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.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook