本課程介紹如何使用 Arduino 將按鈕設置為 LED 的開關切換控制,按一次 LED 開啟,再按一次 LED 關閉。課程著重於按鈕去抖動的實現、如何判斷按鈕狀態變化、及如何維持 LED 狀態,使學生理解如何處理按鈕輸入並創建開關邏輯。
課程大綱
- 課程設置與背景介紹:
- 使用 Arduino Uno R4 WiFi 入門學習套件,連接 Arduino Uno R4 WiFi、LED 和按鈕開關。
- 在連接 Arduino 並確認正確配置後,回顧上節課的按鈕和 LED 設置電路。
- 程式邏輯與變數設定:
- 目標:每次按下並鬆開按鈕時,LED 開關狀態在開與關之間切換。
- 設置變數以追蹤按鈕的當前狀態 (
butVal
)、前一次的狀態 (butValOld
)、以及 LED 當前的開關狀態 (ledState
)。
- 程式實現過程:
- 使用條件判斷語句(if statement)檢查按鈕是否從按下(
0
)變為放開(1
),若條件成立則執行切換動作。 - 狀態切換:若 LED 為關則開啟;若為開則關閉,並更新 LED 狀態。
- 增加
delay()
去抖動程式,以解決因按鈕反彈產生的錯誤輸入。
- 使用條件判斷語句(if statement)檢查按鈕是否從按下(
- 除錯與驗證:
- 驗證程式功能,確保 LED 能在按鈕按壓並釋放後切換開關狀態。
- 若遇到因反彈導致的錯誤切換,提醒加入
delay()
去除反彈效應,並展示改正後的操作。
- 進階課堂作業:增加 RGB LED 及三個按鈕,使每個按鈕控制 RGB LED 的不同顏色(紅、綠、藍)。按一下按鈕開啟對應顏色,再按一下關閉該顏色,達成三種顏色的切換控制。