1. 功能描述
有时候你需要同时执行两件事。例如,你可能想要不断闪烁一个LED,同时读取一个按钮是否被按下或者其他输入。在这种情况下,你不能使用delay()函数,或者在LED闪烁的时候停止其它的所有事情。如果在延迟期间按钮被按下了,程序可能会错过它。本程序演示了如何不使用delay()函数来使一个LED闪烁。本程序持续跟踪Arduino开或者关LED的最后时间。然后,每次通过loop()时,程序检查是否已经经过足够长的间隔。如果已经够长,则打开或者关闭LED。
2. 需要硬件
ü Arduino 板子
ü LED
ü 面包板
3. 电路连接图
为了建立本电路,拿一个LED,把它的正极、长的针脚连接到13号针脚。把短的、阴极针脚连接到地。然后把Arduino板子和电脑连接,打开Arduino程序,并录入下面的代码。
4. 原理图
5. 程序
/*
*/
int ledPin = 2;
int ledState = LOW;
unsigned long previousMillis = 0;
long interval = 2000; // 2000 milliseconds
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > interval)
{
previousMillis = currentMillis;
if(ledState == HIGH)
ledState = LOW;
else
ledState = HIGH;
digitalWrite(ledPin, ledState);
}
}
6. 实验照片


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/263104/viewspace-1254431/ ,如需转载,请注明出处,否则将追究法律责任。