circuits
Deux façons de réinitialiser Arduino dans le logiciel
Si vous souhaitez réinitialiser Arduino depuis le début sans appuyer manuellement sur le bouton RESET, il existe plusieurs façons. Voici deux façons d'utiliser un câblage / circuit minimal.
Étape 1: utilisation d'un fil connecté à la broche RESET

Dans cet exemple, la broche 13, connectée à la broche LED interne 13 clignote. La broche 12 est connectée à la broche RESET par un fil.
-En règle générale, ce serait un problème car lorsque l'application démarre, toutes les broches sont tirées BAS. Cela désactiverait donc Arduino à chaque exécution. MAIS, l'astuce est la suivante: dans la fonction setup (), la première chose qui se produit est d'écrire HAUT sur la broche 12, qui est appelée notre broche de réinitialisation (digitalWrite (resetPin, HIGH), tirant ainsi la broche Arduino RESET HAUT.
LED int = 13; // broche 13 comme LED de SORTIE broche int resetPin = 12; // la routine de configuration s'exécute une fois lorsque vous appuyez sur reset: void setup () {digitalWrite (resetPin, HIGH); retard (200); // initialise la broche numérique en sortie. pinMode (led, SORTIE); pinMode (resetPin, OUTPUT); Serial.begin (9600); // initialize Serial Port Serial.println ("reset"); // print reset pour savoir que le programme a été réinitialisé et // la fonction de configuration s'est produite en retard (200); } // la routine de boucle s'exécute indéfiniment: void loop () {delay (10); digitalWrite (led, HIGH); // allume la LED (HIGH est le niveau de tension) Serial.println ("on"); retard (1000); // attend une seconde digitalWrite (led, LOW); // éteint la LED en rendant la tension LOW Serial.println ("off"); retard (1000); // attend un deuxième Serial.println ("réinitialisation"); retard (10); digitalWrite (resetPin, LOW); Serial.println ("cela n'arrive jamais"); // cela n'arrive jamais car Arduino se réinitialise}
Étape 2: Utilisation de Just Software

void (* resetFunc) (void) = 0; // déclarer la fonction de réinitialisation à l'adresse 0
...
resetFunc (); // réinitialisation d'appel
int led = 13; // la routine de configuration s'exécute une fois lorsque vous appuyez sur reset: void setup () {// initialise la broche numérique en sortie. pinMode (led, SORTIE); Serial.begin (9600); // initialiser le port série} void (* resetFunc) (void) = 0; // déclarer la fonction de réinitialisation à l'adresse 0 // la routine de boucle continue indéfiniment: void loop () {digitalWrite (led, HIGH); // allume la LED (HIGH est le niveau de tension) Serial.println ("on"); retard (1000); // attend une seconde digitalWrite (led, LOW); // éteint la LED en rendant la tension LOW Serial.println ("off"); retard (1000); // attend un deuxième Serial.println ("réinitialisation"); resetFunc (); // appeler le délai de réinitialisation (100); Serial.println ("n'arrive jamais"); }