Inhaltsverzeichnis:
- Schritt 1: Was ist dieser Watchdog-Timer?
- Schritt 2: Wie aktiviere ich den Watchdog-Timer?
- Schritt 3: Halten Sie Ihr Programm am Laufen
- Schritt 4: Beispielanwendung
- Schritt 5: Watchdog-Timer-Probleme
- Schritt 6: Genießen Sie
Video: Der Arduino Hang Guardian - Arduino Watchdog Timer Tutorial - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Hallo allerseits, Es passiert uns allen. Sie bauen ein Projekt, schließen begeistert alle Sensoren an, und plötzlich hängt das Arduino und es werden keine Eingaben verarbeitet.
„Was ist los?“, werden Sie fragen und anfangen, Ihren Code durchzuwühlen, nur um festzustellen, dass Sie in einer Endlosschleife stecken geblieben sind. Gott sei Dank war das Arduino auf Ihrer Bank und nicht an einem abgelegenen Ort.
Heute schauen wir uns an, wie wir den Watchdog-Timer auf dem Arduino verwenden können, um dies zu verhindern.
Schritt 1: Was ist dieser Watchdog-Timer?
Der Arduino Watchdog-Timer ist, wie der Name schon sagt, ein Timer, der getrennt von der Haupt-CPU auf der Platine läuft. Dieser Timer kann verwendet werden, um den Zustand des Boards regelmäßig zu überprüfen, und in Situationen, in denen das Board in einer Softwareschleife stecken geblieben ist oder aufgrund eines Hardwarefehlers stecken geblieben ist, kann der Watchdog-Timer das Arduino zurücksetzen und von vorne beginnen lassen.
Standardmäßig ist dieser Timer bei Nichtgebrauch in allen Projekten deaktiviert und nur wenn wir ihn aktivieren, müssen wir ihn regelmäßig anweisen, unser Board nicht zurückzusetzen, wenn es noch wie erwartet funktioniert.
Um den Watchdog-Timer verwenden zu können, müssen wir zunächst die Datei avr/wdt.h in unsere Arduino-Skizze einbinden. Dies ist die Standardbibliothek, die die Watchdog-Aktionen enthält.
Schritt 2: Wie aktiviere ich den Watchdog-Timer?
Um den Timer zu aktivieren, verwenden wir die Funktion „wdt_enable“, bei der wir das Schwellenintervall eingeben müssen, bei dem das Board zurückgesetzt wird. Je nach Anwendungsfall kann dies in vordefinierten Einstellungen, die in der Watchdog-Bibliothek enthalten sind, zwischen 15 Millisekunden und bis zu 8 Sekunden liegen.
SCHWELLENWERT - KONSTANTER NAME
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
Schritt 3: Halten Sie Ihr Programm am Laufen
Jetzt, da der Timer aktiviert ist, müssen wir regelmäßig die Funktion "wdt_reset" aufrufen, um den Watchdog-Timer vor Ablauf des Schwellenwertintervalls zurückzusetzen, um zu verhindern, dass unser Arduino zurückgesetzt wird.
Bei der Auswahl eines Reset-Intervalls ist es entscheidend, dass wir alle langwierigen Vorgänge wie das Lesen oder Senden von Daten oder das Anschließen externer Sensoren berücksichtigen. Der Rücksetzschwellenwert sollte mindestens eineinhalb Mal größer als diese Zeiten sein, um ein versehentliches Rücksetzen zu verhindern.
Schritt 4: Beispielanwendung
In dem Beispielprogramm, das Sie hier herunterladen können, richten wir zunächst den Watchdog-Timer mit einem Reset-Intervall von 4 Sekunden ein. Um dann zu wissen, dass wir uns in der Setup-Funktion befinden, blinken wir dreimal schnell eine LED auf und setzen dann in der Hauptschleife zuerst den Timer zurück, leuchten eine LED mit zunehmend längeren Intervallen auf und schalten sie dann aus. Die nächste Schleife setzt den Timer wieder zurück, bis die Leuchtzeit länger als 4 Sekunden ist.
In diesem Fall setzt der Watchdog-Timer das Board zurück und das Setup wird erneut ausgeführt.
Schritt 5: Watchdog-Timer-Probleme
Ein mögliches Problem mit dem Watchdog-Timer, abhängig vom Bootloader Ihres Arduino, ist, dass Sie Ihr Arduino-Board beschädigen können, wenn der Watchdog-Timer-Wert zu niedrig ist und der Bootloader den Timer beim Hochladen von neuem Code nicht zurücksetzt es wird immer in der Bootphase stecken bleiben. Der Bootloader wird versuchen zu starten, aber der Timer setzt das Board immer wieder zurück und lässt es nie richtig starten. Um solche Probleme zu vermeiden, stellen Sie sicher, dass Sie immer Schwellenwertintervalle von 2 Sekunden oder mehr verwenden.
Schritt 6: Genießen Sie
Wenn Sie ein Beispiel dafür haben, wo Sie den Watchdog-Timer in einem echten Projekt verwendet haben, lassen Sie es mich in den Kommentaren wissen, stellen Sie sicher, dass das Video gefällt und vergessen Sie nicht, es zu abonnieren.
Liebe Grüße und danke fürs Lesen/Anschauen!
Empfohlen:
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
ESP-01 Programmier-Hack - der Einfache :): 6 Schritte
ESP-01 Programmierer Hack - der Einfache :): Hallo ESPer, In diesem anweisbaren zeige ich Ihnen einen einfachen Hack, um einen Programmierer für ESP-01 / ESP8266-01 / ES-01-Modul zu machen. Die meisten von uns haben ein Arduino-Board oder FTDI USB-TTL-Geräte als Programmierer für dieses Modul verwendet. Beide Methoden funktionieren gut. Aber t
Der Sanity Check: 5 Schritte (mit Bildern)
Der Sanity Check: Bei diesem Projekt dreht sich alles um die Gesundheit oder darum, dass er regelmäßig überprüft wird. Der beste Weg, dies zu erreichen, besteht darin, eine Maske zu bauen, deren Augen zufällig rot leuchten. Oft genug, damit es auffällt, aber spärlich genug, um die Leute zweifeln zu lassen
Der beste Weg, Interviews zu filmen: 3 Schritte
Der beste Weg, Interviews zu filmen: Hallo! Mein Name ist Garrett und ich bin hier, um Ihnen den (meiner Meinung nach) besten Weg zu Interviews für Ihren Film zu zeigen! Für dieses einfache Instructable benötigen Sie: - Lichter - Stativ - Boom-Mikrofon - Ein ruhiger Ort zum Filmen - Kamera - Schauspieler - Bearbeitungssoftware
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir