Table des matières:
- Étape 1: Qu'est-ce que cette minuterie de surveillance ?
- Étape 2: Comment activer la minuterie Watchdog ?
- Étape 3: Maintenez votre programme en cours d'exécution
- Étape 4: Exemple d'utilisation
- Étape 5: Problèmes de minuterie de surveillance
- Étape 6: Profitez
Vidéo: The Arduino Hang Guardian - Tutoriel de minuterie Arduino Watchdog: 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Salut à tous, Cela nous arrive à tous. Vous construisez un projet, connectez avec enthousiasme tous les capteurs, et tout d'un coup, l'Arduino se bloque et aucune entrée n'est traitée.
« Que se passe-t-il ? », vous demanderez-vous et commencerez à creuser dans votre code, pour vous rendre compte que vous êtes coincé dans une boucle infinie. Dieu merci, l'Arduino était sur votre banc et non dans un endroit éloigné.
Aujourd'hui, nous verrons comment utiliser la minuterie de surveillance sur l'Arduino pour éviter que cela ne se produise.
Étape 1: Qu'est-ce que cette minuterie de surveillance ?
La minuterie de chien de garde Arduino, comme son nom l'indique, est une minuterie qui s'exécute séparément du processeur principal de la carte. Cette minuterie peut être utilisée pour vérifier périodiquement l'état de la carte et dans les cas où la carte est bloquée dans une boucle logicielle ou bloquée en raison d'une panne matérielle, la minuterie de surveillance peut réinitialiser l'Arduino et tout recommencer.
Par défaut, lorsqu'elle n'est pas utilisée, cette minuterie est désactivée sur tous les projets et uniquement lorsque nous l'activons, nous devons nous assurer de lui dire périodiquement de ne pas réinitialiser notre carte si elle fonctionne toujours comme prévu.
Pour pouvoir utiliser la minuterie de surveillance, nous devons d'abord inclure le fichier avr/wdt.h dans notre croquis Arduino. Il s'agit de la bibliothèque standard qui contient les actions de surveillance.
Étape 2: Comment activer la minuterie Watchdog ?
Pour activer le timer, nous utilisons la fonction « wdt_enable » où nous devons passer l'intervalle de seuil auquel la carte sera réinitialisée. Selon notre cas d'utilisation, cela peut aller de 15 millisecondes à 8 secondes dans les paramètres prédéfinis contenus dans la bibliothèque de surveillance.
SEUIL - NOM DE LA CONSTANTE
15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S
Étape 3: Maintenez votre programme en cours d'exécution
Maintenant, avec la minuterie activée, pour l'empêcher de réinitialiser notre Arduino, nous devons appeler périodiquement la fonction "wdt_reset" pour réinitialiser la minuterie de surveillance avant l'expiration de l'intervalle de seuil.
Lors du choix d'un intervalle de réinitialisation, il est crucial que nous prenions en considération toute opération longue comme la lecture ou l'envoi de données ou la connexion à des capteurs externes. Le seuil de réinitialisation doit être au moins une fois et demie supérieur à ces temps pour éviter toute réinitialisation accidentelle.
Étape 4: Exemple d'utilisation
Dans l'exemple de programme que vous pouvez télécharger ici, nous avons d'abord configuré la minuterie de surveillance avec un intervalle de réinitialisation de 4 secondes. Ensuite, pour savoir que nous sommes dans la fonction de configuration, nous faisons clignoter une LED 3 fois rapidement puis dans la boucle principale, nous réinitialisons d'abord le minuteur, allumons une LED avec des intervalles de plus en plus longs puis nous l'éteignons. La boucle suivante réinitialise à nouveau la minuterie jusqu'à ce que le temps d'allumage soit supérieur à 4 secondes.
Lorsque cela se produit, le temporisateur de chien de garde réinitialise la carte et la configuration est à nouveau exécutée.
Étape 5: Problèmes de minuterie de surveillance
Un problème possible avec la minuterie de surveillance, en fonction du chargeur de démarrage de votre Arduino, est que si la valeur de la minuterie de surveillance est trop faible et que le chargeur de démarrage ne réinitialise pas la minuterie lors du téléchargement d'un nouveau code, vous risquez d'endommager votre carte Arduino d'une manière qui il sera toujours bloqué dans la phase de démarrage. Le bootloader essaiera de démarrer, mais la minuterie continuera à réinitialiser la carte, ne lui permettant jamais de démarrer correctement. Pour éviter de tels problèmes, assurez-vous de toujours utiliser des intervalles de seuil de 2 secondes ou plus.
Étape 6: Profitez
Si vous avez un exemple d'endroit où vous avez utilisé la minuterie de surveillance dans un projet réel, faites-le moi savoir dans les commentaires, assurez-vous d'aimer la vidéo et n'oubliez pas de vous abonner.
Bravo et merci d'avoir lu/regardé !
Conseillé:
Minuterie avec Arduino et encodeur rotatif : 5 étapes
Minuterie avec Arduino et encodeur rotatif : La minuterie est un outil souvent utilisé aussi bien dans les activités industrielles que domestiques. Cet ensemble est bon marché et facile à réaliser. Il est également très polyvalent, pouvant charger un programme choisi en fonction des besoins. Il y a plusieurs programmes écrits par moi, pour Ardui
Minuterie d'alimentation avec Arduino et encodeur rotatif : 7 étapes (avec images)
Minuterie d'alimentation avec Arduino et encodeur rotatif : cette minuterie d'alimentation est basée sur la minuterie présentée sur : https://www.instructables.com/id/Timer-With-Arduin… Un module d'alimentation et un SSR (relais à semi-conducteurs ) y étaient attachés.Des charges de puissance jusqu'à 1KW peuvent être exploitées et avec des changements minimes le l
Comment faire une minuterie de lavage Arduino bricolage de 30 secondes, ARRÊTER LA PROPAGATION DE COVID: 8 étapes
Comment faire une minuterie de lavage Arduino bricolage de 30 secondes, ARRÊTER LA PROPAGATION DE COVID: bonjour
Moteur pas à pas avec bascules D et minuterie 555; la première partie du circuit la minuterie 555 : 3 étapes
Moteur pas à pas avec bascules D et minuterie 555; la première partie du circuit la minuterie 555 : Le moteur pas à pas est un moteur à courant continu qui se déplace par étapes discrètes. Il est souvent utilisé dans les imprimantes et même la robotique. Je vais expliquer ce circuit par étapes. La première partie du circuit est un 555 minuteur. C'est la première image (voir ci-dessus) avec une puce 555 avec
Microcontrôleur AVR. LED clignotant à l'aide de la minuterie. Interruptions des minuteries. Mode CTC de la minuterie : 6 étapes
Microcontrôleur AVR. LED clignotant à l'aide de la minuterie. Interruptions des minuteries. Mode Timer CTC : Bonjour à tous ! Les minuteries sont un concept important dans le domaine de l'électronique. Chaque composant électronique fonctionne sur une base de temps. Cette base de temps permet de garder tout le travail synchronisé. Tous les microcontrôleurs fonctionnent à une fréquence d'horloge prédéfinie, le