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 132
3 void setup() {4 pinMode(ledPin, OUTPUT); // Setzt den digitalen Pin als Ausgang5 }6
7 void loop() {8 digitalWrite(ledPin, HIGH); // LED an9 delay(1000); // Eine Sekunde warten10 digitalWrite(ledPin, LOW); // LED aus11 delay(1000); // Eine Sekunde warten12 }
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.