一、背景
采用延时函数实现的LED闪烁,在延时未到过程中,CPU停留在延时函数处,无法执行其他运算,对资源是极大的浪费。这里我们尝试用另一种方法来实现LED闪烁。
视频地址:http://player.youku.com/player.php/sid/XMjgyNzMzOTE2NA==/v.swf
二、硬件
D9引脚接一个4.7K电阻再接一个LED到地
三、程序
const int ledPin = 9; // LED引脚编号
int ledState = LOW; //用来指示LED状态的变量
unsigned long previousMillis = 0; //保留上一次读取时间
const long interval = 1000; //灯闪烁间隔,单位ms
void setup() {
// 设定LED引脚为输出脚
pinMode(ledPin, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();//读取当前时间
if (currentMillis - previousMillis >= interval) {
//保存本次时间
previousMillis = currentMillis;
//对灯的状态进行翻转
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
//设定灯的状态
digitalWrite(ledPin, ledState);
}
}
四、函数
1.millis()自本次板子运行多少ms数,50天清零一次。