arduino开关灯闪烁效果不用DELAY延时方法
时间: 2023-07-31 17:10:43 浏览: 63
可以使用 millis() 函数来实现不用 delay() 函数的开关灯闪烁效果。这种方法可以让程序在等待延时的同时继续执行其他的任务,提高了程序的效率。
以下是使用 millis() 函数实现开关灯闪烁效果的示例代码:
```
int ledPin = 9; //LED的引脚
unsigned long currentMillis = 0; //记录当前时间的变量
unsigned long previousMillis = 0; //记录上一次状态改变的时间的变量
int ledState = LOW; //LED的状态变量
void setup() {
pinMode(ledPin, OUTPUT); //设置LED引脚为输出模式
}
void loop() {
currentMillis = millis(); //获取当前时间
if (currentMillis - previousMillis >= 500) { //如果当前时间与上一次状态改变的时间相差500ms
previousMillis = currentMillis; //更新上一次状态改变的时间
if (ledState == LOW) { //如果LED当前状态为关闭
ledState = HIGH; //将LED状态设为高,即点亮LED
} else {
ledState = LOW; //否则将LED状态设为低,即关闭LED
}
digitalWrite(ledPin, ledState); //更新LED状态
}
}
```
以上代码中,使用了两个与时间相关的变量:currentMillis 和 previousMillis。currentMillis 变量记录了当前时间,previousMillis 变量记录了上一次状态改变的时间。程序每次循环都会检查当前时间与上一次状态改变的时间之间的差值,如果差值达到了设定的时间间隔(500ms),则改变 LED 的状态。通过这种方式,可以实现不使用 delay() 函数的开关灯闪烁效果。