本次實作將使用開關元件,並運用 Arduino 的數位輸入功能偵測信號,依照輸入信號執行 LED 燈號程序。內容比較複雜,將分次分階段進行。本次實作每個同學需要抄寫「實作目的」、「線路說明」、「程式說明」與「進階」作為實作報告。
實作目的:
- 正確使用開關元件,並架構電位測量電路
- 正確使用 Arduino 數位輸入電路
- 使用 IF 語法,偵測數位輸入信號進行 LED 程序
階段一:認識開關元件
零件包內附的開關是4支腳位,分成兩組,從背面觀察(上圖下),從條紋來辨識,左邊2支腳位是互通的,右邊2支也是;而必須按下開關,左右兩邊才會連通。
階段二:Arduino 數位輸入與電位測量電路
Arduino 數位輸入是電位訊號而非電流,所以不可以直接將電流直接導入 Arduino 腳位。必須架構電位測量電路來達成數位訊號輸入。
本階段使用 Arduino UNO 的 6 號腳位作為數位輸入,按下開關之後控制內建 LED。
digitalRead(6):讀取 6 號腳位的訊號,高電位 HIGH,低電位 LOW
階段三:由開關控制 LED 程序
現在開始要結合前兩階段以及上個實作,由開關來啟動 LED 閃動程序。由 6 號腳位接受數位輸入訊號。利用 IF 語法控制 LED 程序。LED 電路和程序和上一個實作相同。
電路圖:
線路說明:
- 8、10、12號腳位組成共陰極 LED 線路
- 6 號腳位連接由開關元件所組成的電位測量線路,作為數位輸入端
程式截圖:
程式說明:
- int var = 0; 表示宣告一個變數 var 作為後續讀取輸入訊號用
- 在 setup 區塊設定 6 號腳位為數位輸入端,8號、10號、12號腳位為數位輸出端
- 在 loop 區塊中,利用 var = digitalRead(6); 讀取 6 號腳位訊號到變數 var 中
- 利用 IF 語法,判斷變數 var 是否為 HIGH (高電位)。若是則開始執行 LED 程序
進階:
- 變更間隔時間與次數
- 增加 LED 或 燈號變化
- 使用雙分支結構增加變化
補充說明:IF 語法
if (判斷式){
…
(成立時執行的程序)
…
}
雙分支結構
if (判斷式){
…
(成立時執行的程序)
…
} else {
…
(不成立執行的程序)
…
}
判斷式:== 表示相同;!= 表示不相同
留言
張貼留言