SOMMAIRE ►
Pour réinitialisation l’Arduino sans appuyer sur le bouton Reset, il y a trois options – nous les couvrirons toutes dans cet aperçu. Vous devez redémarrer l’Arduino lorsque le microcontrôleur se bloque ou lorsque vous utilisez le module radio nRF24L01, par exemple, lorsque l’émetteur-récepteur perd la communication et cesse de fonctionner. Le redémarrage des émetteurs radio est difficile, mais le redémarrage de la carte Arduino ne pose aucun problème.
Pour cette activité, nous aurons besoin:
- Arduino Uno / Arduino Nano / Arduino Mega
- resistance de 1 Kohm
- breadboard
- fils de connexion
Matériel supplémentaire sur ce sujet:

Une réinitialisation matérielle ramène tous les paramètres de la carte à leurs valeurs par défaut, c’est-à-dire que toutes les variables sont réinitialisées à leurs valeurs d’origine et que tous les ports actifs sont désactivés et réinstallés. hard reset est une véritable réinitialisation qui a lieu en appuyant sur le bouton RESET. Mais cette réinitialisation peut aussi être appelée depuis le code en appliquant un signal bas au port Reset de l’Arduino.
Comment faire un Reset d’Arduino matériel
unsigned long timer; void setup() { digitalWrite(12, HIGH); pinMode(12, OUTPUT); Serial.begin(9600); delay(100); Serial.println("start"); timer = millis(); } void loop() { if (millis() - timer > 10000) { Serial.println("reboot"); delay(100); digitalWrite(12, LOW); } }
Explication du code pour hard reset Arduino command reboot:
- il est important de définir un niveau de signal élevé sur la broche 12 au début du programme, sinon une réinitialisation se produira;
- dans l’exemple l’Arduino se réinitialise matériel toutes les 10 secondes.
Comment faire un Reset d’Arduino logiciel
soft reset n’est pas vraiment une véritable réinitialisation du programme, mais simplement un saut au début du code (à l’adresse zéro). C’est-à-dire que le code commence à s’exécuter depuis le début, sans affecter les paramètres de l’Arduino au moment de la réinitialisation. Par exemple, si au moment de la réinitialisation, le microcontrôleur était réglé sur « HIGH » sur une sortie, la valeur ne reviendra pas par défaut sur « LOW », mais restera « HIGH ».
Comment programmer un soft reset Arduino
unsigned long timer; void setup() { Serial.begin(9600); delay(100); Serial.println("start"); timer = millis(); } void loop() { if (millis() - timer > 10000) { Serial.println("reboot"); delay(100); asm volatile("jmp 0x00"); } }
Explication du code pour logiciel reset Arduino (reboot):
- asm volatile(« jmp 0x00 »); relance le programme depuis le début mais ne réinitialise pas les ports, la commande peut être utilisée n’importe où dans le code;
- dans l’exemple, le microcontrôleur se réinitialise toutes les 10 secondes.
Pour utiliser Watchdog Timer, le fichier avr/wdt.h doit être inclus et ensuite wdt_enable() doit être appelé. Le chien de garde est une minuterie intégrée (jusqu’à 8 secondes) qui peut être lancée ou réinitialisée. Dès que la minuterie atteint zéro, le contrôleur émet un signal de réinitialisation et l’appareil se remet à zéro. Si programme Arduino prends trop de temps d’exécution alors le chien de garde (Watchdog) entrera en action et fera un « reset » Arduino.
Programme pour reset Arduino lorsqu’il se bloque
#include "avr/wdt.h" unsigned long timer; void setup() { wdt_disable(); Serial.begin(9600); delay(100); Serial.println("start"); timer = millis(); wdt_enable(WDTO_4S); /* vous pouvez choisir entre plusieurs valeurs prédéfinies 15mS WDTO_15MS 30mS WDTO_30MS 60mS WDTO_60MS 120mS WDTO_120MS 250mS WDTO_250MS 500mS WDTO_500MS 1S WDTO_1S 2S WDTO_2S 4S WDTO_4S 8S WDTO_8S */ } void loop() { // wdt_reset(); if (millis() - timer > 10000) { Serial.println("reboot"); delay(1000); } }
Explication du code pour Watchdog (how to reset arduino):
- pour éviter de réinitialiser le microcontrôleur, enlevez le commentaire de wdt_reset(); alors le compteur redémarrera – sinon l’Arduino redémarrera toutes les 4 secondes.
Conclusion. Nous avons vu comment réinitialiser la carte Arduino Uno de manière programmatique en utilisant trois exemples. N’oubliez pas que vous devez être prudent lorsque vous utilisez la réinitialisation matérielle et définir les valeurs correctes avant de réinitialiser le microcontrôleur. Si vous avez besoin d’une véritable réinitialisation du microcontrôleur, utilisez une réinitialisation matérielle de l’Arduino (hard reset).








Bonjour !
Super tuto, grâce à lui j’ai enfin compris le reset logiciel Arduino
Merci ! Continuez comme cela !
@+
EXCELLENT !