Riavviare Arduino in modo Hardware

Obiettivo: Utilizzare la porta Reset per riavviare Arduino.

Teoria: In alcune applicazioni potrebbe essere utile avere la possibilità di riavviare l’esecuzione dello sketch via software. In questo modo si può ripristinare la board ad una condizione iniziale certa.
Un esempio potrebbe essere la gestione del meccanismo di sicurezza di una macchina industriale dove, premendo il pulsante di arresto, il dispositivo deve ritornare ad uno stato iniziale ben definito.
In questo specifico caso, è possibile utilizzare la porta Reset di arduino, che se opportunamente attivata, permette di riavviare il programma.
Nel dettaglio è importante specificare che la porta di reset è attiva bassa ovvero se portato a livello basso (0V) esegue il reset della scheda.

Per effettuare il reset della scheda viene introdotto un pulsante esterno collegato in serie con una resistenza di pull-up. In questa configurazione il pulsante permette di gestire in modo corretto (attivo basso) la porta di reset.

Collegamento Circuitale:

Codice: Viene in seguito riportato il codice necessario per riavviare via hardware il microcontrollore Arduino. Nello specifico il programma, scrive sul monitor seriale la scritta “Start” ogni volta che Arduino viene riavviato.








Riavviare Arduino in modo Software

Obiettivo: Utilizzare una “funzione di reset” per riavviare Arduino via codice.

Teoria:

In alcune applicazioni potrebbe essere utile avere la possibilità di riavviare l’esecuzione dello sketch via software. In questo modo si può ripristinare la board ad una condizione iniziale certa.
Un esempio potrebbe essere la gestione del meccanismo di sicurezza di una macchina industriale dove, premendo il pulsante di arresto, il dispositivo deve ritornare ad uno stato iniziale ben definito.
In questo specifico caso, è possibile definire ed utilizzare una funzione di Reset, che se richiamata, permette di riavviare il programma.
Nel dettaglio prima della funzione di setup viene dichiarato un puntatore a funzione il quale punta alla posizione zero. Richiamando questa funzione Arduino esegue il codice come se fosse stato appena avviato.

Codice: Viene in seguito riportato il codice necessario per riavviare via software il microcontrollore Arduino. Nello specifico il programma, una volta avviato, attende per cinque secondi prima di effettuare il reset software. Il monitor seriale viene utilizzato per fornire i feedback relativi alle fasi di start e di reset.