Πίνακας περιεχομένων:
- Βήμα 1: Τι είναι αυτό το χρονόμετρο Watchdog;
- Βήμα 2: Πώς να ενεργοποιήσετε το χρονόμετρο Watchdog;
- Βήμα 3: Διατηρήστε το πρόγραμμα σε λειτουργία
- Βήμα 4: Παράδειγμα χρήσης
- Βήμα 5: Ζητήματα χρονομέτρου Watchdog
- Βήμα 6: Απολαύστε
Βίντεο: The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Γεια σε όλους, Συμβαίνει σε όλους μας. Δημιουργείτε ένα έργο, συνδέετε με ενθουσιασμό όλους τους αισθητήρες και ξαφνικά, το Arduino κολλάει και καμία επεξεργασία δεν γίνεται.
«Τι συμβαίνει;», θα ρωτήσετε και θα αρχίσετε να ψάχνετε τον κώδικά σας, μόνο για να συνειδητοποιήσετε ότι έχετε κολλήσει σε έναν άπειρο βρόχο. Δόξα τω Θεώ, το Arduino ήταν στον πάγκο σας και όχι σε απομακρυσμένη τοποθεσία.
Σήμερα, θα εξετάσουμε πώς μπορούμε να χρησιμοποιήσουμε το χρονόμετρο φύλαξης στο Arduino για να αποτρέψουμε αυτό.
Βήμα 1: Τι είναι αυτό το χρονόμετρο Watchdog;
Το χρονόμετρο Arduino watchdog όπως υποδηλώνει το όνομα είναι ένα χρονόμετρο που λειτουργεί χωριστά από την κύρια CPU στον πίνακα. Αυτός ο χρονοδιακόπτης μπορεί να χρησιμοποιηθεί για περιοδικό έλεγχο της κατάστασης του πίνακα και σε περιπτώσεις όπου ο πίνακας έχει κολλήσει σε έναν βρόχο λογισμικού ή έχει κολλήσει λόγω αστοχίας υλικού, ο χρονοδιακόπτης φύλαξης μπορεί να επαναφέρει το Arduino και να το ξεκινήσει από την αρχή.
Από προεπιλογή, όταν δεν χρησιμοποιείται, αυτός ο χρονοδιακόπτης είναι απενεργοποιημένος σε όλα τα έργα και μόνο όταν τον ενεργοποιούμε, πρέπει να φροντίζουμε να του λέμε περιοδικά να μην επαναφέρει την πλακέτα μας εάν εξακολουθεί να λειτουργεί όπως αναμενόταν.
Για να μπορέσουμε να χρησιμοποιήσουμε το χρονόμετρο του φύλακα, πρέπει πρώτα να συμπεριλάβουμε το αρχείο avr/wdt.h στο σκίτσο του Arduino. Αυτή είναι η τυπική βιβλιοθήκη που περιέχει τις ενέργειες του φύλακα.
Βήμα 2: Πώς να ενεργοποιήσετε το χρονόμετρο Watchdog;
Για να ενεργοποιήσουμε το χρονόμετρο, χρησιμοποιούμε τη συνάρτηση "wdt_enable" όπου πρέπει να περάσουμε στο διάστημα κατωφλίου στο οποίο θα γίνει επαναφορά της πλακέτας. Ανάλογα με την περίπτωση χρήσης μας, μπορεί να είναι από 15 χιλιοστά του δευτερολέπτου έως και 8 δευτερόλεπτα σε προκαθορισμένες ρυθμίσεις που περιέχονται στη βιβλιοθήκη του φύλακα.
THRESHOLD - ΣΤΑΘΕΡΟ ΟΝΟΜΑ
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
Βήμα 3: Διατηρήστε το πρόγραμμα σε λειτουργία
Τώρα, με ενεργοποιημένο το χρονόμετρο, για να αποτρέψουμε την επαναφορά του Arduino μας, πρέπει να καλούμε περιοδικά τη λειτουργία "wdt_reset" για να επαναφέρετε το χρονόμετρο του φύλακα προτού λήξει το διάστημα κατωφλίου.
Κατά την επιλογή ενός διαστήματος επαναφοράς, είναι ζωτικής σημασίας να λάβουμε υπόψη οποιαδήποτε μακρά λειτουργία, όπως η ανάγνωση ή η αποστολή δεδομένων ή η σύνδεση με εξωτερικούς αισθητήρες. Το όριο επαναφοράς πρέπει να είναι τουλάχιστον μιάμιση φορά μεγαλύτερο από αυτές τις φορές για να αποφευχθεί τυχαία επαναφορά.
Βήμα 4: Παράδειγμα χρήσης
Στο παράδειγμα του προγράμματος που μπορείτε να κατεβάσετε εδώ, πρώτα ρυθμίσαμε το χρονόμετρο του φύλακα με διάστημα επαναφοράς 4 δευτερολέπτων. Στη συνέχεια, για να γνωρίζουμε ότι είμαστε στη λειτουργία ρύθμισης, αναβοσβήνουμε μια λυχνία LED 3 φορές γρήγορα και, στη συνέχεια, στον κύριο βρόχο επαναφέρουμε πρώτα το χρονόμετρο, ανάβουμε ένα LED με προοδευτικά μεγαλύτερα διαστήματα και στη συνέχεια το σβήνουμε. Ο επόμενος βρόχος επαναφέρει ξανά το χρονόμετρο έως ότου ο χρόνος φωτισμού είναι μεγαλύτερος από 4 δευτερόλεπτα.
Όταν συμβεί αυτό, το χρονόμετρο του φύλακα επαναφέρει τον πίνακα και η ρύθμιση εκτελείται ξανά.
Βήμα 5: Ζητήματα χρονομέτρου Watchdog
Ένα πιθανό ζήτημα με το χρονόμετρο του φύλακα, ανάλογα με το πρόγραμμα εκκίνησης του Arduino σας, είναι ότι εάν η τιμή του χρονομέτρου ρολογιού είναι πολύ χαμηλή και ο φορτωτής εκκίνησης δεν επαναφέρει το χρονόμετρο κατά τη μεταφόρτωση νέου κώδικα, μπορεί να καταλήξετε να καταστρέψετε τον πίνακα Arduino σας με τρόπο που θα είναι πάντα κολλημένο στη φάση εκκίνησης. Ο φορτωτής εκκίνησης θα προσπαθήσει να ξεκινήσει, αλλά ο χρονοδιακόπτης θα συνεχίσει να επαναφέρει την πλακέτα, χωρίς ποτέ να της επιτρέψει να ξεκινήσει σωστά. Για να αποφύγετε τέτοια προβλήματα, βεβαιωθείτε ότι χρησιμοποιείτε πάντα διαστήματα κατωφλίου 2 δευτερολέπτων ή και περισσότερο.
Βήμα 6: Απολαύστε
Εάν έχετε ένα παράδειγμα για το πού έχετε χρησιμοποιήσει το χρονόμετρο ρολογιού σε ένα πραγματικό έργο, ενημερώστε με στα σχόλια, βεβαιωθείτε ότι σας αρέσει το βίντεο και μην ξεχάσετε να εγγραφείτε.
Μπράβο και ευχαριστώ για την ανάγνωση/παρακολούθηση!
Συνιστάται:
Steampunked Dream Guardian Night Light: 9 βήματα (με εικόνες)
Steampunked Dream Guardian Night Light: Γεια σε όλους Ένας στενός φίλος μου μου ζήτησε να δημιουργήσω ένα δώρο αρραβώνα (φυσικά εκτός από το δαχτυλίδι!) Για τη φίλη του πριν από μερικές εβδομάδες. Και οι δύο είναι σαν εμένα, εθελοντές πυροσβέστες και λατρεύουν τα αντικείμενα Steampunk. Ο φίλος μου σκέφτηκε μια οδό
Servo Control χρησιμοποιώντας 555 IC Timer Timer: 3 βήματα
Control Servo Using 555 Timer IC: Το πρώτο μου εκπαιδευτικό ήταν ο " Έλεγχος Servos χρησιμοποιώντας Analog Joystick ". Από τότε έχω μοιραστεί μερικά έργα που χρειάζονταν servos για παράδειγμα: Robotic arm and Face tracker. Χρησιμοποιούσαμε πάντα έναν μικροελεγκτή για τον έλεγχο των servos. Αλλά για να
Eye Guardian: Sound Triggered Eye Protection: 9 βήματα (με εικόνες)
Eye Guardian: Sound Triggered Eye Protection: Eye Guardian είναι ένας συνεχόμενος ήχος υψηλής έντασης Arduino που προκαλεί φθορά προστασίας ματιών. Ανιχνεύει ήχο βαρύ εξοπλισμού και μειώνει τα προστατευτικά γυαλιά ματιών ενώ ο εξοπλισμός χρησιμοποιείται. ΠεριγραφήΣτο πρώτο βήμα, θα εξηγήσω το Inspirati
Κύκλωμα κουμπιού συναγερμού πανικού με χρήση 555 IC Timer Timer (Μέρος-2): 3 βήματα
Κύκλωμα κουμπιού συναγερμού πανικού με χρήση χρονοδιακόπτη 555 IC (Μέρος-2): Γεια σας παιδιά! Θυμηθείτε το Μέρος-1 αυτού του οδηγού. Εάν δεν έχετε μια ματιά εδώ. Συνέχεια περαιτέρω … Ένα κύκλωμα συναγερμού πανικού χρησιμοποιείται για να στείλει αμέσως ένα σήμα έκτακτης ανάγκης στους ανθρώπους σε μια κοντινή τοποθεσία για να καλέσουν βοήθεια ή να τους ειδοποιήσουν. Το πιθανό τηγάνι
Quiz Buzzer Χρησιμοποιώντας 555 IC Timer Timer: 4 βήματα
Quiz Buzzer Using 555 Timer IC: Αυτό το έργο έχει χορηγηθεί από το LCSC.com. Η LCSC δεσμεύεται να προσφέρει μια μεγάλη ποικιλία γνήσιων, υψηλής ποιότητας ηλεκτρονικών εξαρτημάτων στην καλύτερη τιμή. Το LCSC έχει γίνει το ταχύτερα αναπτυσσόμενο ηλεκτρονικό κατάστημα ηλεκτρονικών εξαρτημάτων στο Chi