這篇的目的在用Nexus:bit製作一個簡單的行人號誌燈:
- 平時RGB LED亮著紅燈,並在螢幕顯示行人號誌燈標誌。
- 按下A鍵時,開始倒數15秒,RGB LED轉為綠燈,螢幕上顯示跑步的小人。
- 剩下7秒時,RGB LED變成黃燈,並轉而顯示剩餘秒數。
- 倒數完畢,回到紅燈和行人號誌燈標誌。
- 此外蜂鳴器也會響起類似真實世界行人號誌燈的聲音。
綠燈(剩15-8秒時) |
黃燈(剩7-1秒時) |
紅燈(倒數尚未開始或結束後) |
在這裡的重點是如何控制好倒數的時間。顯示圖案、數字積木會有約400毫秒延遲,而在倒數剩15~8秒時會有輪替的圖案,因此這階段迴圈每跑一次要2秒,號誌燈聲響只響一次,但秒數要減兩次。我們也得用某種方式填補顯示圖案後尚需的600毫秒時間,可以用蜂鳴器的聲音延遲或單純的暫停積木來達成。
到了第二次迴圈,變成每1秒輪迴一次。我們同樣用蜂鳴器播放和暫停積木來湊到差不多1秒。最後就是確定RGB LED在每個階段會亮起正確的顏色,並在號誌整個倒數完畢後把螢幕畫面恢復到一開始的圖案。
程式如下:
點圖可放大 |
沒有留言:
張貼留言