Detener un bucle Arduino

Ammar Ali 12 octubre 2023
  1. Detenga el void loop() utilizando la biblioteca Sleep_n0m1
  2. Detenga el void loop() con exit(0)
  3. Detenga el void loop() utilizando un bucle infinito
Detener un bucle Arduino

Este tutorial discutirá métodos para detener un bucle en Arduino. Hay dos tipos de bucles en Arduino; uno es el void loop() que se proporciona por defecto y el otro que el usuario crea allí propio. Los bucles creados por el usuario se pueden finalizar fácilmente utilizando el método break. Para finalizar el void loop() de Arduino, puede utilizar los siguientes métodos.

Detenga el void loop() utilizando la biblioteca Sleep_n0m1

El método anterior puede funcionar para todas las placas Arduino, pero Arduino seguirá usando energía. Usando la biblioteca Sleep_n0m1, puede poner su CPU Arduino en suspensión permanente hasta que la reinicie manualmente o usando un temporizador. Tenga en cuenta que esto puede no funcionar para todas las 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
}

Asegúrese de utilizar la biblioteca Sleep_n0m1 después de haber terminado con su código. Este método consumirá solo un poco de energía. Utilice este enlace para obtener más detalles.

Detenga el void loop() con exit(0)

El void loop() de Arduino se puede finalizar usando el método exit(0) después de su código, pero tenga en cuenta que Arduino.cc no proporciona ningún método para finalizar este bucle, por lo que este método puede no funcionar para todas las placas Arduino.

void loop() {
  // All of your code here

  // exit the loop
  exit(0);  // 0 is required to prevent error.
}

Tenga en cuenta que después de quit(0), su Arduino dejará de funcionar hasta que lo reinicie manualmente. Así que asegúrese de usar este método después de que el código haya terminado su tarea.

Detenga el void loop() utilizando un bucle infinito

Es posible que el método anterior no funcione para todas las placas Arduino, por lo que debemos usar otro método. El método de bucle infinito funcionará para todas las placas Arduino, pero Arduino permanecerá despierto y seguirá consumiendo energía. En este método, puede insertar un bucle infinito después de su código. Arduino procesará su código, ingresará un bucle infinito y permanecerá allí hasta que lo restablezca manualmente.

void loop() {
  // All of your code
  while (1) {  // infinite loop
  }
}

Si Arduino ingresa al bucle infinito, no regresará hasta que lo reinicie, así que asegúrese de usar bucle infinito después de que haya terminado con su 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