Pauses the program for the amount of time (in microseconds) specified as parameter. There are a thousand microseconds in a millisecond, and a million microseconds in a second.
Delay for at least the given number of microseconds.
Interrupts, etc. may cause the actual number of microseconds to exceed us. However, this function will return no less than us microseconds from the time it is called.
Parameters
the number of microseconds to delay.
The following example configures pin number 8 to work as an output pin, and sends a train of pulses with a period of roughly 100 microseconds:
int outPin = 8;
void setup() {
pinMode(outPin, OUTPUT); // sets the digital pin as output
}
void loop() {
digitalWrite(outPin, HIGH); // sets the pin on
delayMicroseconds(50); // pauses for 50 microseconds
digitalWrite(outPin, LOW); // sets the pin off
delayMicroseconds(50); // pauses for 50 microseconds
}
The longest time delayMicroseconds() can delay is bounded by its argument type and the STM32 clock rate to be (2^32 - 1) / 12 microseconds, or less than 6 minutes. For longer pauses, use of delay() is possible.
While we have made every effort we could to ensure that the timing of delayMicroseconds is as accurate as possible, we cannot guarantee it will behave as the Arduino implementation down to the microsecond, especially for smaller values of us.
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.