wemos D1 arduino物聯網開發板應用筆記4-玩轉定時器

前言

本節我們學習使用WeMos D1的定時器,使用定時器可以實現定時、延時控制功能、PWM輸出、計數以及對外部事件的檢測。

一、基礎知識

1.WeMos D1定時器簡介

WeMos D1中定時器通過Ticker實現,Ticker是一個定時器庫,通過Ticker可以很容易實現定時器功能。當前不建議從Ticker回調函數中阻止IO操作(網絡,串行,文件)。 最好在代碼回調中設置一個標誌,然後在循環函數中檢查該標誌。

2. WeMos D1定時器函數說明

wemos D1 arduino物聯網開發板應用筆記4-玩轉定時器

二、實例

實例程序開啓兩個定時器,一個是單次定時,6秒後進入單次定時回調函數,另一個是循環定時,每隔3秒進入依次回調函數。

#include <Arduino.h>
#include <Ticker.h>

Ticker tk, tk1;

int timer_flag = 0;
int count = 0;

void timer_coming_once_cb(void)
{
 Serial.println("time coming only once.");
 tk1.detach();
}

void time_coming_cicyle_cb(void)
{
 timer_flag = 1;
 count++;
}

void setup() {
 Serial.begin(9600);
 tk1.once(6, timer_coming_once_cb);
 // call time_coming_cicyle_cb every 3s
 tk.attach(3, time_coming_cicyle_cb);
}

void loop() {
 if (1 == timer_flag)
 {
 Serial.println("time coming......");
 Serial.println(count);
 timer_flag = 0;

 if (10 == count)
 {
 Serial.println("stop timer");
 tk.detach();
 }
 }
}

上述程序中,使用到了attch(),detach(),once()函數,毫秒級延時同樣用法,只是定時時間變短。

三、運行

點擊上傳,設備運行後Log如下所示:

wemos D1 arduino物聯網開發板應用筆記4-玩轉定時器

從圖中可知,我們現在已經可以正常操作定時器了。

四、結語

1.總結:

本節完,實際操作過程中需要注意的地方有如下幾點:

(1) 定時器的定義

如果使用多種定時方式,應該多定義結果Ticker類型變量,如圖中使用了單次定時和循環定時,也定義了兩個變量,分別對應tk和tk1。

2.後記:

如您在使用過程中有任何問題,請加QQ羣進一步交流,也可以github提Issue。

QQ交流羣:906015840 (備註:物聯網項目交流)

獲取源碼:關注公衆號,回覆wemos即可

一葉孤沙出品:一沙一世界,一葉一菩提

wemos D1 arduino物聯網開發板應用筆記4-玩轉定時器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章