Ferma un loop Arduino

Ammar Ali 12 ottobre 2023
  1. Ferma il void loop() usando la libreria Sleep_n0m1
  2. Ferma il void loop() usando exit(0)
  3. Ferma il void loop() usando un loop infinito
Ferma un loop Arduino

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.

Autore: 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