Wie man blinkt, ohne die Verzögerungsfunktion in Arduino zu verwenden

Wie man blinkt, ohne die Verzögerungsfunktion in Arduino zu verwenden
Blink ohne Verzögerung () ist das einfachste Arduino-Projekt für ein besseres Verständnis von Anfängern und in Arduino gibt es eine integrierte Funktion von Delay (), die eine Verzögerung einer bestimmten Zeit (in Millisekunden) erzeugt (in Millisekunden). Warum muss dann ein Projekt von blinkenden LEDs ohne Verzögerung () Funktion () funktion machen? In dieser Beschreibung werden wir versuchen, die Antwort auf diese Frage herauszufinden und die Methode zu diskutieren, mit der wir blinken können, ohne die Funktion Delay () in Arduino zu verwenden.

Warum müssen wir blinzeln, ohne die Funktion Delay () in Arduino zu verwenden?

Die Delay () -Funktion erzeugt eine Verzögerung einer definierten Zeit in der Ausführung von Aussagen oder wir können sagen, dass die Delay () -Funktion das gesamte Programm pausiert und keine Anweisung ausgeführt wird, bis die Verzögerung () nicht endet.

Dies bedeutet, dass wir keine andere Aufgabe erledigen können, bis die Verzögerung nicht abgeschlossen ist. Dies ist das Hauptanliegen, warum es manchmal entmutigt ist, die Delay () -Funktion zu verwenden. Betrachten wir das Beispiel eines Kurier-Mannes, er geht ins Haus und findet niemanden zu Hause, sagten die Nachbarn, die betroffene Person werde in einer Stunde zurück in sein Haus sein. Was soll der Kurier-Mann nun tun?? Entweder kann er warten oder die Pakete der benachbarten Kunden liefern und nach einer Stunde zurückkehren, um das Paket dieser Person zu liefern.

In ähnlicher Weise empfehlen wir bei der Programmierung nicht die Funktion Delay () und das gesamte Programm für einige Zeit inne, anstatt dass wir es vorziehen, eine andere Aufgabe zu erfüllen, während die LED -Blinzeln der LED.

Blinken Sie ohne den Funktionscode von Delay () in Arduino

In Arduino können wir LEDs ohne die Funktion Delay () durch einen sehr einfachen Code blinken. Lassen Sie uns vor dem Code den Zweck einiger integrierter Funktionen erläutern, die im Code verwendet werden:

Funktionen Zweck
PinMode () Diese Funktion wird verwendet, um den spezifischen Pin zu definieren, der als Ausgang oder Eingang fungiert
DigitalWrite () Diese Funktion wird verwendet, um den PIN nach hohen oder niedrigen Zuständen zu konfigurieren
Serie.Start() Diese Funktion wird für die serielle Kommunikation verwendet
Millis () Diese Funktion wird verwendet, um die Ausführungszeit von Code in Millisekunden zu extrahieren

Betrachten Sie den folgenden Code:

int led = 13;
int x = 1;
nicht signiertes langes D1, D2;
void setup ()
PinMode (LED, Ausgabe);
DigitalWrite (LED, 1);
Serie.Beginnen Sie (9600);

void Loop ()
D2 = Millis ();
if (d2-d1> = 1000)
x = 1-x;
D1 = Millis ();
DigitalWrite (LED, x);

Die Erklärung des obigen Codes lautet:

  • Wir haben eine Variable „X“ mit einem Ganzzahl -Datentyp definiert und es wird verwendet, um den Status der LED zu ändern.
  • Wir definieren auch eine Variable -LED mit einem Ganzzahl -Datentyp und speichern 13 darin. Diese 13 wird für den dreizehn Zahlenstift von Arduino verwendet.
  • Zwei Variablen D1 und D2 sind mit dem nicht signierten langen Datentyp definiert. Der Datentyp „Nicht signiert lang“ wird verwendet, um 32 Zahlenbits zu speichern und bis zu 4.294.967.295 Zahlen speichern.
  • In der void setup () verwenden wir zunächst die Funktion PinMode () und deklarieren Sie Pin 13 als Ausgangsstift.
  • Als nächstes verwendeten wir die Funktion DigitalWrite (), um den Stand von Pin 13 hoch zu machen.
  • Zuletzt haben wir serielle Kommunikation mit einer Baudrate von 9600 verwendet.
  • In der void Loop () geben wir den Code des Blinkens von LEDs ein, weil wir ihn für einen unendlichen Zeitraum wiederholen möchten.
  • Wir extrahieren die Ausführungszeit des Code bisher und speichern den Wert in Variablen D2.
  • Mit der IF-Anweisung haben wir die Bedingung überprüft, wenn (d2-d1> 1000), falls dies der Fall ist, den Wert von x ändert.
  • Dann speichern wir den anderen Wert der Ausführung von Code in D1.
  • Schließlich änderte die Verwendung der Funktion DigitalWrite () den Status der LED unter Verwendung des Werts von x.
  • Dies wird für die unendliche Zeit fortgesetzt (da der Wert von D2-D1 auf keinen Fall mehr als 1000 beträgt).

Simulation

Wir werden diesen Code in der Proteus -Simulation ausführen, den Proteus öffnen und die folgenden Komponenten finden:

  1. Arduino uno r3
  2. LED
  3. Widerstand
  4. Boden

Schließen Sie den einen Terminal des Widerstands mit Pin 13 von Arduino an, verbinden Sie das positive Anschluss der LED mit dem anderen Anschluss des Widerstands und verbinden Sie den Boden mit dem negativen Terminal der LED. Sobald die Schaltung abgeschlossen ist, klicken Sie auf Arduino und laden Sie eine „Hex“ -Datei mit Arduino -Code in IT hoch.

Spielen Sie das Projekt und die LED wird wie unten gezeigt blinken:

Hardwarekonfiguration

Die gleiche Schaltung, die am Proteus simuliert ist. Wir haben Pulloverdrähte verwendet, um die Komponenten mit LED, Arduino und Widerstand zu verbinden:

Der schwarze Jumper -Draht ist mit dem Boden des Arduino und dem negativen Terminal der LED verbunden. Dann ist ein Widerstand (220 Ohm) mit dem positiven Anschluss der LED verbunden und ein weiteres Bein des Widerstands (220 Ohm) ist mit dem roten Jumper -Draht an Pin 13 von Arduino verbunden. Der Code ist bereits auf dem Arduino hochgeladen. Die Arbeit des Projekts lautet:

Die LED blinkt erfolgreich, ohne die Funktion Delay () zu verwenden.

Abschluss

Das Blink ohne Verzögerung () in Arduino ist das Projekt für Anfängerebene, mit dem nachgewiesen wird, wie das Projekt ohne Verwendung der Delay () -Funktion ausgeführt werden kann. Ohne die Funktion Delay () sind wir nicht auf eine einzelne Aufgabe beschränkt und können andere Anweisungen des Codes ausführen. In dieser Beschreibung haben wir die Blink-LED ohne Verzögerung () in Arduino mit Hilfe einer Demonstration ihrer Simulation sowie seiner Hardwarekonfiguration erklärt.