實驗目的
讓一顆燈號閃爍,每隔一秒切換一次燈號,而且不使用 delay() 延遲函式達成目的。材料
- Arduino 主板 x 1
- LED x 1
接線
- 把 LED 接到 Arduino 板子上,LED 長腳(陽極)接到 pin13,短腳(陰極)接到 GND,如下圖:
程式
這是使用 delay() 延遲函式版的 Blink 程式(blink.pde),我們在「Arduino 筆記 – Lab1 Blinking a LED 」見過:
這支程式最大的問題,是當 delay() 函式在執行的時候,程式沒辦法做其它事情,CPU 就一直空轉著。如果你想讓燈號既可以閃爍,又要同時做其它事情,那麼就不能用 delay() 函式。
底下這支程式(BlinkWithOutDelay.pde)不使用 delay() 延遲函式,同樣可以達到讓燈號閃爍的目的:
程式所用的方法,是一直追蹤燈號狀態更新的時間,然後不斷檢查是否已超過間隔的時間,是的話,就切換燈號。運用這個方法,就可以讓 Arduino 同時做很多事情,變成一個簡單的多工系統(multitask system)。
請問那如果是要藉由偵測不同input控制同一顆馬達呢?
回覆刪除我現在想要讓同一顆馬達接受不同感測做某些事情,但是當觸摸時會強制讓馬達停止,請問這個多工的程式碼可以達到這樣的動作嗎?
感謝回答!
你說的問題,用一樣的方法應該是辦得到的
回覆刪除