Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Comprendre le Watchdog Timer : Comment il empêche les blocages du microcontrôleur

Composants et fournitures

Applications et services en ligne

À propos du projet

Quelle est la situation quand votre microcontrôleur se perd dans une boucle infinie 😖. Y a-t-il des cas où votre microcontrôleur plante ou se bloque pendant une tâche 😖. Quelles sont les méthodes de dépannage normales ? Bouton Reset, non ? Est-il pratique d'appuyer sur le bouton tout le temps ? 😕. Et si un dispositif faisait cette tâche automatiquement ? Ça a l'air bien. Cool... ! 🙂.

Oui ! Nous allons discuter d'un tel dispositif déjà intégré dans le microcontrôleur : le Watchdog Timer (minuteur de surveillance).

« Un watchdog timer (WDT) est un minuteur matériel qui génère automatiquement une réinitialisation système si le programme principal néglige de le servir périodiquement. Il est souvent utilisé pour réinitialiser automatiquement un système embarqué qui se bloque à cause d'une faute logicielle ou matérielle. » (os.mbed.com/cookbook/WatchDog-Timer).

Nourrir le chien !

Si vous avez un chien à la maison, vous devez le nourrir à intervalles réguliers. Si vous oubliez un jour, il vous mordra ! Le watchdog timer fonctionne de la même façon.

Comprendre le Watchdog Timer : Comment il empêche les blocages du microcontrôleur

Nous avons une partie principale du programme qui s'exécute en boucle (loop). On active le watchdog timer avec une valeur initiale supérieure au délai total du programme principal. À chaque itération, le programme principal réinitialise ce minuteur. Si pour une raison quelconque le programme principal ne revient pas réinitialiser le minuteur avant qu'il ne compte jusqu'à zéro, une interruption est générée pour réinitialiser le processeur. Ainsi, le watchdog timer protège le microcontrôleur contre les blocages.

Alors, essayons le watchdog timer sur Arduino ;)

L'Arduino UNO utilise le microcontrôleur ATMEGA328P.

Comprendre le Watchdog Timer : Comment il empêche les blocages du microcontrôleur

Bibliothèque Watchdog Timer

#include <avr/wdt.h>

Cette bibliothèque est nécessaire pour utiliser le watchdog timer sur Arduino.

Activer le Watchdog Timer

wdt_enable(WDT_RESET_TIMER);

Pour activer le watchdog timer, WDT_RESET_TIMER varie de 15 ms à 8 s.

Comprendre le Watchdog Timer : Comment il empêche les blocages du microcontrôleur

Exemple : wdt_enable(WDTO_8S); – Active le watchdog timer pour 8 secondes.

Réinitialiser le Watchdog Timer

wdt_reset();

Cette fonction réinitialise le watchdog timer. Elle doit être appelée dans loop(). Si votre programme utilise un delay() plus long que le seuil du watchdog timer, ajoutez la fonction de réinitialisation avant ce delay. Sinon, le microcontrôleur redémarrera avant la fin de la tâche.

Désactiver le Watchdog Timer

wdt_disable();

Code d'exemple

#include <avr/wdt.h>

void setup() {
  Serial.begin(9600);
  Serial.println("Setup started :");
  // Délai avant activation WDT
  // Ce délai permet de terminer toutes les tâches d'initialisation
  delay(2000);
  wdt_enable(WDTO_4S);
}

void loop() {
  Serial.println("LOOP started ! ");
  for (int i = 0; i <= 5; i++) {
    Serial.print("Loop : ");
    Serial.print(i);
    Serial.println();
    delay(1000);
    wdt_reset();
  }
  // Boucle infinie pour bloquer le MCU
  while (1) {}
}

Sortie

Comprendre le Watchdog Timer : Comment il empêche les blocages du microcontrôleur

Envoyez vos retours, questions, discussions dans les commentaires.

Code

Code complet (Arduino)

#include <avr/wdt.h>
void setup() {
  Serial.begin(9600);
  Serial.println("Setup started :");
  delay(2000);
  wdt_enable(WDTO_4S);
}
void loop() {
  Serial.println("LOOP started ! ");
  for (int i = 0; i <= 5; i++) {
    Serial.print("Loop : ");
    Serial.print(i);
    Serial.println();
    delay(1000);
    wdt_reset();
  }
  // Boucle infinie pour bloquer le MCU
  while (1) {}
}

Processus de fabrication

  1. Insertion de moulage expliquée : augmenter l'efficacité et réduire les coûts en production multi-matériaux
  2. Le prototypage expliqué : l'étape clé de validation pour les startups
  3. Comprendre les moteurs linéaires : de l'énergie électrique au mouvement linéaire précis
  4. Tournage CNC expliqué : usinage de précision pour pièces de haute qualité
  5. Comprendre les fonderies : où le métal devient les blocs de construction de l'industrie moderne
  6. Comprendre les pompes multi-étages : fonctionnement, utilisations et avantages
  7. Comprendre les alimentateurs de presse : mécanisme, fonction et applications industrielles
  8. Comprendre les pompes immergées : fonctionnement et avantages clés
  9. Comprendre les robots boissons : technologie, automatisation et rôle dans l'industrie des boissons