iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 9
1
IoT

來與IoT譜寫一首戀愛樂章吧系列 第 9

op.09 《感知層》-很重要的 Ticker

op.9 與IoT滴滴答答

滴滴答答,我的心跟著妳一起走過無數時空
滴滴答答,我的心跟著妳走過這時代的洪荒
滴滴答答...滴滴答答...
願這美好能成為永恆。

今天也是一個好玩的一天,回頭去玩了管樂,但是好可惜噢,竟然沒有我朝思暮想的黑黑QQ

今日的主題:Ticker

今天是一個針對韌體常會用到的主題,今天要來介紹 Ticker ,這是甚麼東西呢?簡單來說她就是一個計時器,時間到就會提醒,那這有甚麼好處呢?以往感測器收集數據是採用輪詢的方式,輪詢是甚麼呢?好比今天燒開水,沒有使用定時中斷,那便會一直花心思在顧燒開水事情上,而有使用定時中斷,那便會一段時間再過去看水燒開沒,這中間即可去處理其他事情,相對的會更有效率。

Ticker是Arduino Core For ESP8266 內設置的定時器函數,它可以為你在規定時間後呼叫指定函數,那接下來將會介紹相關的功能。

detach() 停止 Ticker

active() Ticker是否啟用

once() x秒後執行一次

once_ms() x毫秒后只執行一次

attach() 每隔x秒周期性执行

attach_ms() 每隔x毫秒周期性执行

那就廢話不多說,立馬開始吧!

程式碼:

#include<Ticker.h>
Ticker SetHigh;
Ticker SetLow;

void setPin(int state){
  digitalWrite(13,state);
}

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  SetLow.attach_ms(500, setPin, 0);
  SetHigh.attach_ms(1000, setPin, 1);
}

void loop() {
  
}

從上面的實驗就可以發現到,LED的結果開始變成 Blink 了,太神奇了吧!
其實原理很簡單,一個每500ms關掉,一個每1000ms打開,那就會發現一件,每兩個關掉中間有一個打開,所以就會產生一開一關的感覺,而且,loop 裡也沒有寫任何的東西,代表這隻程式基本上是以 Ticker 去計數,計到時間到去完成該做的事情,在許多應用之中,這是一個算是很必備的技能,所以今天特別小了個小篇章來記錄這個。

今天就到這裡啦~晚安囉。

今日的曲子:<<天>>王辰威


上一篇
op.08 《感知層》-用 Wi-Fi 控制一切吧
下一篇
op.10 《感知/應用層》-用 Openweathermap 來取得天氣吧
系列文
來與IoT譜寫一首戀愛樂章吧30

尚未有邦友留言

立即登入留言