Come resettare Arduino via software

Ciao!

In questo post vedremo come resettare il nostro Arduino, non con il solito tasto presente sulla scheda, ma direttamente dal nostro codice.

Questo metodo è molto comodo se avete la necessità di montare il vostro Arduino in un posto difficile da raggiungere o se lo controllate da remoto.






Un primo metodo è dichiarare la seguente funzione:
void (*resetBoard)() = 0;
Richiamandola poi con resetBoard() verrà resettata la scheda.
Siccome questo metodo fa semplicemente ripartire l'esecuzione del programma dall'inizio, potrebbero verificarsi problemi a causa di ram, timer ed interrupt "sporchi"

Molto meglio è utilizzare il watchdog come mostrato in questo codice di esempio:


  1. #include 
  2. #include 
  3. #define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {} //definizione della funzione reset
  4. int i = 0;
  5. void setup() {
  6.   Serial.begin(9600);
  7.   Serial.println("Inizio programma!");
  8. }
  9. void loop() {
  10.   i++;
  11.   if (<= 5)
  12.   {
  13.     delay (1000);
  14.     Serial.print("Secondi trascorsi: ");
  15.     Serial.println(i);
  16.   }
  17.   else
  18.   {
  19.     Serial.println("Resetto tutto!");
  20.     delay(1000);
  21.     Reset_AVR(); //arrivati in questo punto verrà resettata la scheda
  22.   }
  23. }


Caricatelo sul vostro Arduino, aprendo serial monitor vedrete che dopo alcuni secondi la scheda si resetterà.
L'esecuzione del codice ripartirà dall'inizio.

Fonti: MB su Forum Arduino


Questo è tutto,
per qualsiasi domanda lascia pure un commento.

Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

Nessun commento:

Posta un commento

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post