Come fermare la funzione del loop vuoto in Arduino

Come fermare la funzione del loop vuoto in Arduino
Arduino è una piattaforma di programmazione che consente agli utenti di comunicare con i microcontrollori che non erano possibili parecchi anni fa. Le schede Arduino possono essere programmate utilizzando Arduino IDE. Arduino IDE utilizza un linguaggio C/C ++ con alcune funzionalità aggiuntive per controllare e programmare le schede Arduino. Arduino Sketch è costituito principalmente da due funzioni che si sono configurate e la seconda è loop. Qui capiremo come possiamo controllare il loop usando diverse tecniche di programmazione.

Come fermare il loop vuoto in Arduino?

Gli schizzi di Arduino sono principalmente costituiti da due parti che uno è configurato e la seconda è loop. Le funzioni di configurazione vengono eseguite solo una volta dopo la compilazione del codice mentre la funzione Loop continua a funzionare fino a quando un nuovo schizzo o Arduino perde il suo potere.

Più progetti potrebbero richiedere funzioni di loop vuoto per funzionare per un tempo specifico o fermarsi dopo aver eseguito determinate istruzioni, quindi ora esamineremo come possiamo fermare la funzione di loop Arduino void usando diverse tecniche di programmazione.

La funzione Loop si ferma davvero?

Arduino non fornisce alcun modo per fermare la funzione del loop vuoto. Oltre ad Arduino non esiste una cosa del genere nei microcontroller in primo luogo. Tecnicamente tutte le tecniche che abbiamo usato sono solo per fermare la funzionalità Arduino Loop. Non si ferma completamente, o inviamo il loop vuoto a una condizione infinita Mentre o usare un Uscita Dichiarazione per fermare il suo processo. In questo modo Arduino Loop bloccato all'interno di un ciclo infinito senza eseguire istruzioni, l'unico modo per riaverlo è ripristinato; tramite un pulsante o caricando un nuovo schizzo. Quindi tecnicamente il loop Arduino void non si ferma.

Metodi per fermare il loop vuoto in Arduino

La programmazione Arduino ha due tipi di loop uno che è per impostazione predefinita nello schizzo di Arduino che è vuoto Loop () mentre il secondo è loop utilizzato durante la programmazione o scrivendo uno schizzo. I loop creati dall'utente possono interrompere facilmente l'utilizzo delle istruzioni di pausa.

Di seguito sono indicati pochi passaggi per fermare il loop vuoto in Arduino:

  • Usando Infinite While Loop
  • Usando la libreria del sonno
  • Usando l'istruzione Exit (0)
  • Usando l'istruzione IF

I: Using Infinite While Loop

Per fermare il ciclo vuoto in Arduino, disegnare un anello infinito può essere utilizzato con l'aiuto di una struttura ad anello. Questo metodo funzionerà su tutte le schede Arduino, ma questo non fermerà il funzionamento di Arduino mentre Arduino continua a consumare il potere. Questo metodo può essere facilmente implementato in qualsiasi codice dopo l'ultima riga in cui è terminato il codice.

Facciamo un esempio di battito di ciglia a LED per capire come il ciclo while è utile per rompere la funzione del loop vuoto:

void setup ()
// Metti qui il codice di configurazione, da eseguire una volta:
pinMode (led_builtin, output);

void loop ()
DigitalWrite (led_builtin, high); // Accendi LED
ritardo (1000); // ritardo di un secondo
DigitalWrite (led_builtin, basso); // Disattiva LED
ritardo (1000); // ritardo di un secondo
while (1) // Infinite Loop

Nel codice sopra abbiamo inizializzato il pin LED integrato nella funzione di configurazione del vuoto dopo che nella sezione del loop vuoto viene scritto un programma di lampeggiamento a LED. Qui il LED inizierà a sbattere le palpebre in uno schema di 1 secondo e 1 secondo fuori. Dopo che un ciclo è stato completato un infinito mentre il loop viene avviato alla fine del secondo ritardo; Ora il LED rimarrà disattivato fino a quando il codice non viene ricaricato o Arduino viene ripristinato.

II: Utilizzo della libreria del sonno

Nel metodo di cui sopra viene fermato Arduino void loop ma Arduino continuerà a prendere il potere. Il prossimo metodo che fermerà permanentemente il loop vuoto e metterà l'uso di Arduino in modalità sospensione Sleep_n0m1 La libreria, usando questa CPU Arduino può essere inviata in modalità di sospensione permanente fino a quando Arduino non viene ripristinato o abbiamo usato un timer per un tempo specifico per il quale Arduino va in modalità Sleep. Questo metodo dipende da biblioteche che potrebbero non funzionare su alcune schede Arduino.

Ancora una volta, faremo un esempio di LED per dimostrare il suo funzionamento.

#includere
Dormi dormi;
Lungo tempo libero non firmato;
void setup ()
Offtime = 5000;
pinMode (led_builtin, output);

void loop ()
DigitalWrite (led_builtin, high); // Accendi LED
ritardo (1000); // ritardo di 1 sec
DigitalWrite (led_builtin, basso); // Disattiva LED
ritardo (1000); // Ritardo di 1 sec
sonno.pwrdownMode (); // Imposta la modalità Sleep
sonno.SleepDelay (Offtime); // Dormi per: Offtime

All'inizio dello schizzo, abbiamo chiamato Arduino Sleep Library e definito una variabile Offtime Questa variabile memorizzerà il limite di tempo per il quale vogliamo mettere Arduino in modalità Sleep. Qui abbiamo preso 5000 ms di fuorigioco. Quindi abbiamo definito un LED integrato per Arduino.

Nella sezione del loop vuoto il codice LED è scritto, qui LED completerà un ciclo di lampeggiamento, quindi va alla modalità di sospensione per 5000 ms o 5 sec, dopo che il LED inizierà di nuovo un ciclo di lampeggiamento, quindi andrà di nuovo alla modalità di sospensione per 5 sec. Questo ciclo continua fino a quando Arduino non viene ripristinato.

In questo esempio il ciclo si fermerà per 5 sec dopo di che ricomincia a causa del set di fallimento, ma se dobbiamo fermarlo permanentemente dobbiamo rimuovere questo timer o impostarlo al massimo valore. La libreria di sonno può fermare la sezione Loop per un massimo di 49 giorni dopo di che si ripristinerà automaticamente.

III: Utilizzo dell'istruzione Exit (0)

Il ciclo vuoto può anche essere interrotto utilizzando l'istruzione Exit (). Questa affermazione è uno dei modi più semplici per fermare una funzione di loop vuoto. Ricorda di utilizzare questa affermazione alla fine del codice perché qualsiasi istruzione scritta dopo questa riga non verrà eseguita fino a quando Arduino non verrà ripristinato o il codice è riordinato.

void setup ()
// Metti qui il codice di configurazione, da eseguire una volta:
pinMode (led_builtin, output);

void loop ()
DigitalWrite (led_builtin, high); // Accendi LED
ritardo (1000); // Ritardo di 1 sec
DigitalWrite (led_builtin, basso); // Disattiva LED
ritardo (1000); // Ritardo di 1 sec
uscita (0);

Il codice sopra spiega l'uso delle istruzioni di uscita per l'interruzione del loop void nel codice Arduino. Come il precedente esempio di Blink Code è stato scritto e alla fine del codice abbiamo avviato una riga di uscita. Questo romperà il loop di Arduino void. LED lampeggerà per un ciclo dopo che si fermerà.

IV: Utilizzo dell'istruzione IF

L'istruzione IF è l'ultimo metodo, discuteremo oggi per fermare il loop vuoto. Se la dichiarazione imposterà una condizione all'interno del ciclo che riavvierà il loop vuoto o lo fermerà a seconda dell'ingresso dell'utente.

Sotto il codice dimostra if-state con l'aiuto di LED a Stop void Loop.

Boolean stop = true;
void setup ()
// Metti qui il codice di configurazione, da eseguire una volta:
pinMode (led_builtin, output);

void loop ()
if (stop == true)
DigitalWrite (led_builtin, high); // Accendi LED
ritardo (1000); // Ritardo di 1 sec
DigitalWrite (led_builtin, basso); // Disattiva LED
ritardo (1000); // Ritardo di 1 sec

stop = false;

All'inizio del codice, abbiamo inizializzato una variabile booleana fermare e il suo valore è impostato su True. Dopodiché nella sezione di configurazione sono definiti i pin a LED. Nella sezione del loop vuoto se le istruzioni iniziano e verificano la variabile fermare valore. Se la condizione diventa vera, inizierà lo schizzo di lampeggiante a LED. Una volta completato il ciclo di lampeggiante a LED, assegniamo il valore del fermare variabile a false. Dopodiché continuerà a controllare il loop del vuoto, ma l'affermazione diventerà sempre falsa perché impostiamo il valore del fermare variabile a false, con conseguente arresto del ciclo vuoto del codice Arduino.

Conclusione

Il loop vuoto è una parte importante del codice Arduino, qualsiasi cosa scritta al suo interno continuerà in esecuzione fino a quando Arduino non verrà ripristinato. A volte dobbiamo interrompere la sezione Loop in base ai parametri del progetto, quindi qui abbiamo evidenziato tutti i modi principali usando il quale possiamo fermare il codice della sezione loop di Arduino void.