本課程介紹如何使用 Arduino 將按鈕設置為 LED 的開關切換控制,按一次 LED 開啟,再按一次 LED 關閉。課程著重於按鈕去抖動的實現、如何判斷按鈕狀態變化、及如何維持 LED 狀態,使學生理解如何處理按鈕輸入並創建開關邏輯。


課程大綱

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