[时间]
说明
暂停程序指定为参数的时间量(以毫秒为单位)。 (一秒钟有 1000 毫秒。)
用法
delay(ms)
参数
ms
:暂停的毫秒数。允许的数据类型:unsigned long
。
返回
无
示例代码
代码在切换输出引脚之前暂停程序一秒钟。
int ledPin = 13; // LED connected to digital 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
}
注意事项和警告
虽然使用delay()
函数很容易创建闪烁的 LED,并且许多草图使用短延迟来执行开关去抖动等任务,但在草图中使用 delay()
有很大的缺点。在延迟函数期间,无法继续读取传感器、数学计算或引脚操作,因此实际上,它会使大多数其他活动停止。有关控制时序的替代方法,请参见Blink Without Delay 草图,它会循环轮询millis() 函数,直到经过足够的时间。知识渊博的程序员通常避免使用delay()
来对超过 10 毫秒的事件进行计时,除非 Arduino 草图非常简单。
但是,当delay() 函数控制 Atmega 芯片时,某些事情会继续进行,因为延迟函数不会禁用中断。记录出现在 RX 引脚上的串行通信,维持 PWM (analogWrite) 值和引脚状态,并且 interrupts 将正常工作。
相关用法
- Arduino delayMicroseconds()用法及代码示例
- Arduino digitalWrite()用法及代码示例
- Arduino digitalRead()用法及代码示例
- Arduino do...while用法及代码示例
- Arduino long用法及代码示例
- Arduino Arduino_EMBRYO_2 - setLengthXY()用法及代码示例
- Arduino ~用法及代码示例
- Arduino ArduinoBLE - bleDevice.advertisedServiceUuidCount()用法及代码示例
- Arduino const用法及代码示例
- Arduino Ethernet - server.begin()用法及代码示例
- Arduino ArduinoBLE - BLEService()用法及代码示例
- Arduino ArduinoBLE - bleCharacteristic.subscribe()用法及代码示例
- Arduino Servo - attach()用法及代码示例
- Arduino write()用法及代码示例
- Arduino Arduino_LSM9DS1 - readGyroscope()用法及代码示例
- Arduino ArduinoSound - FFTAnalyzer.input()用法及代码示例
- Arduino MKRGSM - gprs.attachGPRS()用法及代码示例
- Arduino WiFiNINA - WiFi.config()用法及代码示例
- Arduino MKRGSM - sms.read()用法及代码示例
- Arduino MKRNB - getCurrentCarrier()用法及代码示例
- Arduino Scheduler - Scheduler.startLoop()用法及代码示例
- Arduino Arduino_LSM9DS1 - magneticFieldAvailable()用法及代码示例
- Arduino MKRWAN - available()用法及代码示例
- Arduino ArduinoBLE - BLE.poll()用法及代码示例
- Arduino ArduinoBLE - bleCharacteristic.hasDescriptor()用法及代码示例
注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 delay()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。