2011年4月21日 星期四

用 pulseIn 量測 button 被按了多久

實驗目的

練習用 pulseIn() 函式來量測 button 被按了多久的時間。

材料
  • Arduino 主板 x 1
  • Pushbutton x 1
  • 10K 歐姆電阻 x 1
  • 麵包板 x 1
  • 單心線 x N
接線
  • 把 pushbutton 一支腳接到 +5V,另一支腳接到 pin 2 同時接一顆 10K 電阻連到 GND

image

電路圖

image

程式

底下這支程式(pulseIn.pde)會印出 button 被按了多久的時間(duration):

pulseIn() 可以量測 pulse (脈波)的長度,不管是 HIGH 或 LOW 的 pulse 都可以,例如:

pulseIn() 會等待 pulse 的出現並且計算時間,timeout 時間預設是 1 秒鐘,假如在指定時間內沒有發現 pulse,pulseIn() 會回傳 0,你也可以透過 pulseIn() 的第 3 個參數指定 timeout 時間,單位是 microseconds:

pulseIn(pin, value, timeout)

pulseIn() 可以量測的 pulse 長度為 10 miliseconds 到 3 分鐘。

執行結果

下圖是範例數據,button 每次都是按大約 5 秒鐘:

image
▲ 用 Serial Monitor 觀察到的執行結果

延伸閱讀

2 意見:

Lo cheng wei 提到...

原來pluseIn那麼好用,不過可以知道使用者案多少秒的資訊後就可以多做很多事情了 : ))

coopermaa 提到...

比如呢?

看誰按最接近 10 秒?