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