本站改版新增arduino频道

Micropython
Arduino

arduino 使用 millis() 实现非阻塞延时的示例


arduino 使用 millis() 实现非阻塞延时的示例

const int ledPin = 48; //定义LED引脚
unsigned long previousMillis = 0;//定义一个变量,记录时间
unsigned long interval = 1000; // 延时1000毫秒,等于1秒
bool ledState = LOW;//定义LED状态为低电平

//只执行一次
void setup()
{
  //设置 ledPin 引脚为 输出模式(OUTPUT)
  pinMode(ledPin, OUTPUT);
}

//循环执行
void loop()
{
  //定义一个变量用于存储 millis() 函数返回的值
  unsigned long currentMillis = millis();
  //如果当前运行的时间 减去 之前运行的时间 大于 1000毫秒
  //说明已经过去了1000ms的时间
  if (currentMillis - previousMillis >= interval)
  {
    //更新之前的时间为当前时间,方便下次计算
    previousMillis = currentMillis;

    // 切换 LED 的状态
    ledState = !ledState;
    digitalWrite(ledPin, ledState);

  }
// 此处之后可以执行其他任务,而无需等待延时

}



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号

执行时间: 0.0093979835510254 seconds