Arduino-Timer-Bibliothek zum Verzögern

Arduino Timer Bibliothek Zum Verzogern



Der Timer ist eine der Schlüsselkomponenten von Arduino zur Bewältigung zeitkritischer Aufgaben. Arduino-Timer verwenden normalerweise die Funktion „delay()“, um die Ausführung für kurze Zeiträume zu verzögern oder anzuhalten. Für Multitasking ist jedoch eine spezielle Bibliothek zur Verzögerung von Funktionen erforderlich.

In diesem Handbuch werden verschiedene Arduino-Timer-Bibliotheken zum Verzögern mit kurzen Beschreibungen behandelt. Lassen Sie uns vorher die Einschränkungen der Arduino-Funktion „delay()“ verstehen.







Einschränkungen von delay()

Die Funktion „delay()“ kann nicht verwendet werden, wenn Sie verschiedene Aufgaben gleichzeitig ausführen möchten, da es sich um eine blockierende Funktion handelt. Das bedeutet, dass immer dann, wenn die Funktion „delay()“ verwendet wird, um die Ausführung einer Aufgabe anzuhalten, in der Zwischenzeit keine andere Funktion ausgeführt werden kann. Wenn also jemand ein Programm stoppen möchte, während andere ausgeführt werden, kann delay() nicht verwendet werden.



Was ist dann zu tun?



Arduino-Timer-Bibliothek zum Verzögern von Funktionsaufrufen

Um dieses Problem zu lösen, sollten Sie spezielle Bibliotheken verwenden, die für die Durchführung von Verzögerungen entwickelt wurden. Mit diesen Bibliotheken können Sie einige Funktionen im Programm für einige Zeit anhalten und andere in der Zwischenzeit ausführen. Bei diesen Bibliotheken handelt es sich um Timer-Bibliotheken, die Multitasking nicht blockieren. Sie können verwendet werden, um bei Bedarf Funktionen aufzurufen.





So integrieren Sie die Arduino-Timer-Bibliothek in den Arduino-Code

Um zuerst die Timer-Bibliothek einzubinden, müssen wir die ZIP-Datei hinzufügen, indem wir zu gehen Bibliothek einschließen Abschnitt in der Arduino IDE. Eine ausführliche Beschreibung zum Hinzufügen von Arduino-Bibliotheken finden Sie im Artikel So installieren Sie die Bibliothek in der Arduino IDE .

Schritt 1

Zuerst müssen Sie die Arduino-Timer-Bibliothek herunterladen.



Schritt 2

Öffnen Sie nach dem Herunterladen der Timer-Bibliothek die Arduino IDE, gehen Sie zu „Skizze“, dann zu „Bibliothek einschließen“ und klicken Sie dann auf „ZIP-Bibliothek hinzufügen“.


Arduino wird angezeigt „Bibliothek installiert“ in der Ausgabe.

Schritt 3

Nachdem Sie die ZIP-Bibliothek zur Arduino IDE hinzugefügt haben, wird sie in der Dropdown-Liste der Optionen „Bibliothek einschließen“ in der Arduino IDE angezeigt. Von hier aus einschließen Timer Bibliothek.


Wenn Sie das einbeziehen 'Timer' Bibliothek wird die Präprozessoranweisung in der Skizze angezeigt. Andernfalls können Sie Schritt 4 ausführen, um die Bibliothek manuell einzubinden.

# enthalten < Timer.h >

Schritt 4

Um die Arduino-Timer-Bibliothek in den Arduino-Code einzubinden, müssen Sie die verwenden #enthalten Richtlinie zusammen mit der (.H) Geben Sie den Namen der Erweiterungs-Timer-Bibliothek ein und erstellen Sie dann einen Timer wie unten gezeigt.

#include
Auto-Timer = timer_create_default ( ) ;


Nachdem Sie einen Timer erstellt haben, müssen Sie eine Funktion erstellen, um diesen Timer aufzurufen. Möglicherweise müssen Sie den Timer zu einem bestimmten Zeitpunkt, nach einer kurzen Verzögerung oder nach einem Zeitintervall aufrufen. Nachfolgend finden Sie Beispiele für den Aufruf von Timern unter solchen Bedingungen.

Falls Sie eine kurze Verzögerung wünschen

timer.in ( Verzögerung, function_to_call ) ;
timer.in ( Verzögerung, function_to_call, Argument ) ; // oder mit einem optionalen Argument für function_to_call


In diesem Fall können wir das verwenden timer.in() Funktion, um eine Verzögerung einzuführen, bevor eine bestimmte Funktion aufgerufen wird. Der Verzögerungsparameter stellt die Zeit in Millisekunden dar, die wir warten möchten, bevor wir den Code ausführen.

Nach der angegebenen Verzögerung wird die function_to_call verwendet wird. Es kann auch ein Argument definiert werden, das zum Zeitpunkt des Aufrufs an die Funktion übergeben wird.

Für den Fall, dass Sie den Timer zu einem bestimmten Zeitpunkt aufrufen möchten

Diese Funktion richtet einen Timer ein, um eine bestimmte Funktion zu einem bestimmten Zeitpunkt auszuführen. Der Zeitparameter gibt den Zeitpunkt an, zu dem die Funktion aufgerufen werden soll. Dabei kann es sich um einen bestimmten Zeitstempel oder einen Verzögerungswert in Millisekunden handeln. Der function_to_call ist der Parameter der Funktion, die nach Ablauf des Timers ausgeführt werden soll.

timer.at ( Zeit , function_to_call ) ;
timer.at ( Zeit , function_to_call, Argument ) ; // mit Argument


timer.at(time, function_to_call, argument) Die Funktion kann ein Argument an die aufgerufene Funktion übergeben. Der Argumentparameter ist der Wert, der in der Funktion übergeben werden soll.

Für den Fall, dass Sie den Timer nach einem bestimmten Zeitintervall aufrufen möchten

In diesem Fall können Sie die Funktion timer.every() verwenden, um eine Funktion nach einem bestimmten Zeitintervall wiederholt aufzurufen. Der Intervallparameter zeigt die Zeit in Millisekunden zwischen ausführbaren Zeitintervallen an.

Geben Sie das gewünschte Intervall und das an function_to_call wird nach diesem Intervall wiederholt verwendet. Wie in den vorherigen Fällen können Sie ein optionales Argument angeben, das beim Aufruf der Funktion übergeben wird.

timer.jeder ( Intervall, function_to_call ) ;
timer.jeder ( Intervall, function_to_call, Argument ) ; // Geben Sie hier Ihr Intervall ein


Über den Link können Sie weitere Einzelheiten zu dieser Methode zur Verwendung einer Timer-Bibliothek zum Verzögern von Funktionsaufrufen erfahren Arduino-Timer-Bibliothek zum Verzögern von Funktionen .

Einige andere Bibliotheken für Verzögerungen in Arduino

Der unten angegebene Link führt Sie zu den Timer-Bibliotheken von Arduino, wo Sie die Timer-Bibliotheken zum Verzögern von Funktionsaufrufen installieren können.

Timer-Bibliothek von Michael Contreras

Es gibt auch einen Autor, der seine eigene, nicht blockierende Arduino-Timer-Bibliothek zum Verzögern von Funktionsaufrufen bereitgestellt hat. Er hat integrierte Funktionen von Arduino wie millis() und micros() verwendet, um Verzögerungsfunktionen ohne Blockierung auszuführen. Unten finden Sie einen Link zu seiner Bibliothek:

MichaelUray Arduino-Timer-Bibliothek

Abschluss

Obwohl die Funktion „delay()“ in Arduino bereits vorhanden ist, kann sie nicht zur gleichzeitigen Ausführung mehrerer Aufgaben verwendet werden. Um mehrere Aufgaben gleichzeitig auszuführen, wurden von der Arduino-Community nicht blockierende Timer-Bibliotheken erstellt, die bei Bedarf verwendet werden können.