Arduino 笔记 - 3

作者: cheneydc | 来源:发表于2014-05-24 18:32 被阅读124次

led-without-delay

上个笔记可以点亮led了,不过delay的时候是很浪费时间的,这里可以采用另外一个方法实现,所以要用到一个新的函数mills():

这个函数可以返回从程序开始到现在的时间,单位是毫秒级,大约达到50天的时候会溢出(重置为0),具体参见函数介绍

连线图和上一个笔记里一样,就不贴了,点这里

代码:

const int ledPin = 13;

int ledState = LOW;

long previousMillis = 0;  //记录上一次led状态变化的时间

long interval = 1000; //led变化频率,毫秒级,这里还是1秒

void setup(){

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);

  }

}

代码结构很简单,效果和用delay是一样的,但是在loop里面可以做其他的事情了,提高了效率。

相关文章

网友评论

    本文标题:Arduino 笔记 - 3

    本文链接:https://www.haomeiwen.com/subject/hrddtttx.html