当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Arduino delay()用法及代码示例


[时间]

说明

暂停程序指定为参数的时间量(以毫秒为单位)。 (一秒钟有 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.cc大神的英文原创作品 delay()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。