Diese Seite ist auch in 2 anderen Sprachen verfügbar.
Sprache wechseln  

delay()

[Time]

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.

int ledPin = 13; // LED auf Digitalpin 13

void setup() {
  pinMode(ledPin, OUTPUT); // Setzt den digitalen Pin als Ausgang
}

void loop() {
  digitalWrite(ledPin, HIGH); // LED an
  delay(1000);                // Eine Sekunde warten
  digitalWrite(ledPin, LOW);  // LED aus
  delay(1000);                // Eine Sekunde warten
}

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