delay()

Beschreibung

Unterbricht das Programm für die als Parameter angegebene Zeit (in Millisekunden). (Es gibt 1000 Millisekunden in einer Sekunde.)

Syntax

delay(ms)

Parameter

ms
: die Anzahl der Millisekunden, die angehalten werden sollen. Erlaubte Datentypen:
unsigned long
.

Rückgabewert

Nichts.

Beispielcode

Der Code hält das Programm für eine Sekunde an, bevor der Ausgangs-Pin umgeschaltet wird.

1int ledPin = 13; // LED auf Digitalpin 13
2
3 void setup() {
4 pinMode(ledPin, OUTPUT); // Setzt den digitalen Pin als Ausgang
5 }
6
7 void loop() {
8 digitalWrite(ledPin, HIGH); // LED an
9 delay(1000); // Eine Sekunde warten
10 digitalWrite(ledPin, LOW); // LED aus
11 delay(1000); // Eine Sekunde warten
12 }

Anmerkungen und Warnungen

Während es einfach ist, eine blinkende LED mit der Funktion

delay()
zu erstellen, und viele Sketchn kurze Verzögerungen für Aufgaben wie das Entprellen des Switches verwenden, hat die Verwendung von
delay()
in einem Sketch erhebliche Nachteile. Während der Verzögerungsfunktion kann kein anderes Lesen von Sensoren, mathematischen Berechnungen oder Pin-Manipulationen durchgeführt werden, sodass die meisten anderen Aktivitäten zum Erliegen kommen. Für alternative Ansätze zum Steuern des Timings siehe den Blinken ohne Verzögerung-Sketch, welcher über Schleifen die Funktion millis() abfrägt, bis genügend Zeit vergangen ist. Erfahrene Programmierer vermeiden normalerweise die Verwendung von
delay()
für das Timing von Ereignissen, die länger als 10 Millisekunden sind, es sei denn, der Arduino-Sketch ist sehr einfach.

Bestimmte Dinge laufen jedoch weiter, während die

delay()
-Funktion den Atmega-Chip steuert, da die
delay()
-Funktion Interrupts nicht deaktiviert. Die serielle Kommunikation, die am RX-Pin erscheint, wird aufgezeichnet, die Werte für PWM (analogWrite) und Pin-Status werden beibehalten. Auch Interrupts funktionieren wie sie sollen.

Siehe auch

Suggest changes

The content on docs.arduino.cc is facilitated through a public GitHub repository. If you see anything wrong, you can edit this page here.

License

The Arduino documentation is licensed under the Creative Commons Attribution-Share Alike 4.0 license.