本課程介紹如何使用 Arduino 以三個按鈕來控制 RGB LED 的顏色切換功能。每個按鈕分別控制 RGB LED 的紅色、綠色和藍色通道,使學生了解如何進行多個開關的連接與程式邏輯。最終實現的功能包含將多色混合產生黃、青、洋紅等不同顏色,並對電路佈局進行管理和優化,讓電路整潔、易於除錯。
課程大綱
- 課程設置與背景介紹:
- 使用 Arduino Uno R4 WiFi 入門學習套件,連接 Arduino Uno R4 WiFi、RGB LED 和三個按鈕開關。
- 重溫上節課的單顆按鈕 LED 控制邏輯,並介紹此次多按鈕控制的擴展應用。
- 硬體電路設置:
- 按鈕開關的接線:
- 每個按鈕的左腳連接到 GND(地線),右腳經過 10k 歐姆的上拉電阻連接到 5V 電源。
- 每個按鈕的輸出端(右腳和上拉電阻之間)依次接到數位輸入腳位 2、3 和 4,對應紅、綠和藍色按鈕。
- RGB LED 的接線:
- RGB LED 的公共引腳(第二腳)接 GND,紅、綠和藍色引腳經過 1k 歐姆限流電阻分別連接到數位輸出腳位 9、10 和 11。
- 按鈕開關的接線:
- 程式邏輯設計與變數宣告:
- 定義變數以記錄各按鈕和 RGB LED 的狀態,並設立按鈕按下狀態(
butVal
)、前一狀態(butValOld
)及 LED 狀態(ledState
)。 - 設置每個按鈕和 LED 對應的腳位,並進行輸入輸出模式設置。
- 透過條件判斷語句實現按鈕切換控制:每次按下並鬆開按鈕時,LED 開關狀態在開與關之間切換,達到按下紅色按鈕時亮紅燈、按綠色按鈕亮綠燈等效果。
- 定義變數以記錄各按鈕和 RGB LED 的狀態,並設立按鈕按下狀態(
- 程式碼除錯與測試:
- 驗證程式功能,逐個按下並釋放 RGB 按鈕,檢查 LED 是否能根據按鈕的切換狀態進行顏色變化。
- 嘗試開啟多色混合(如紅與藍形成洋紅、紅與綠形成黃色、綠與藍形成青色),並展示混合顏色的效果。
- 進階課堂作業:
- 在現有程式基礎上進行優化,嘗試使用
analogWrite
來微調 RGB 通道亮度,以獲得更豐富的混合顏色效果(如更純的黃色、青色、白色等)。 - 清理程式中的冗餘代碼,並優化變數命名,提高程式的可讀性與可維護性。
- 在現有程式基礎上進行優化,嘗試使用