Pauses the program for at least a given number of milliseconds. (There are 1000 milliseconds in a second.)
Delay for at least the given number of milliseconds.
Interrupts, etc. may cause the actual number of milliseconds to exceed ms. However, this function will return no less than ms milliseconds from the time it is called.
Parameters
the number of milliseconds to delay.
While it is easy to create a blinking LED with the delay() function, and many sketches use short delays for such tasks as switch debouncing, the use of delay() in a sketch has significant drawbacks. No other reading of sensors, mathematical calculations, or pin manipulation can go on during the delay function, so in effect, it brings most other activity to a halt. For alternative approaches to controlling timing see the millis() function and the “Blink Without Delay” sketch cited below. More knowledgeable programmers usually avoid the use of delay() for timing of events longer than tens of milliseconds, unless the sketch is very simple.
Certain things do go on while the delay() function is controlling the STM32 chip, however, because the delay function does not disable interrupts. Serial communication that appears at the RX pin is recorded, PWM (see pwmWrite()) values and pin states are maintained, and interrupts will work as they should.
int ledPin = 13; // LED connected to pin 13
void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop() {
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}
License and Attribution
This documentation page was adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.