學習目標 : 認識faya LED模組的功能及使用方式
學習時間 : 35min
示範模組 : (1) fayaduino UNO
(2) faya 電源底板
(3) faya LED模組
工具 : (1) 樂高積木底板 (相容)
====================功能介紹====================
還記得學生時代的跑馬燈作業嗎? faya LED模組使用8顆的紅色LED燈,不但方便讓使用者作跑馬燈迴圈的程式練習,排成一直線的方式對於訊號強弱的顯示也能夠很直覺的顯示!
faya LED模組的面板上包含了8個輸入埠,D0~D7,分別連接到每個對應LED的陽極:
- 當輸入埠D0~D7收到High準位時,對應的LED點亮
- 當輸入埠D0~D7收到Low準位時,對應的LED點亮
====================原理知識====================
以下解釋提供給有需要知道背後原理的人:
faya LED模組的動作原理是很簡單的,由於紅色LED順向壓降約為2V,因此輸入5V電壓時,LED點亮,跨過LED的電流約等於 (5V-2V)/220 ohm = 13.5mA,足以提供給LED不錯的亮度。參考電路圖如下所示:
===================範例實作(1)===================
了解模組功能(原理)後,我們用以下範例來展示模組的功能:
目標:
(1) 設計LED跑馬燈,讓LED重複的由D0點依序亮到D7
接線:
(1) 電源線連接
如下圖所示,連接的說明請看這篇文章 或簡易版
(2) 訊號線連接
Arduino_13 ===> LED_D0
Arduino_12 ===> LED_D1
Arduino_11 ===> LED_D2
Arduino_10 ===> LED_D3
Arduino_9 ===> LED_D4
Arduino_8 ===> LED_D5
Arduino_7 ===> LED_D6
Arduino_6 ===> LED_D7
範例程式:
備註:
- 在setup()中的L20~L27的腳位設定撰寫效率不佳,我們可以用以下迴圈取代:
- 由於LED的D0~D7剛好規律地順著Arduino的13~6腳位連接,因此在for迴圈裡可以直接把數字腳位根據需求拿來運算。
範例結果:
===================範例實作(2)===================
目標:(1) 設計LED跑馬燈,讓LED重複的由D0點依序亮到D7,再依序點亮回D0
接線:和上一範例相同,無須更改
範例程式:
備註:
- 要讓LED燈來回跑,我們設了2個旗標, D0_flag 和 D7_flag,分別記錄燈跑到最右邊(D0=1)和最左邊(D7=1)的狀態,有了這兩個旗標,我們就能判斷是否該回頭了!
範例結果:
討論:
各位有沒有發現這個程式會讓LED燈在最左右邊多閃了一次,如果要讓執行結果如下,該怎麼修改程式呢? 大家不妨試試看,需要解答的請到我們粉絲頁留言喔!
===================範例實作(3)===================
目標:
(1)利用鍵盤的數字0~7來開/關 LED燈D0~D7
接線:
和上一範例相同,無須更改
範例程式:
備註:
- L36:利用NOT指令(!),讓目前的LED的結果轉態 (亮=>暗) or (暗=>亮)
- L33: ch原本設成字元,在比較時,自動轉換成HEX數值,因此所設的條件視為當讀到的HEX介於30到37之間時,附上ASCII表供參考如下
範例結果:
歡迎大家在底下留言或到我們的粉絲團留言喔!
====================================
fayalab 粉絲團
FB本篇留言版
沒有留言:
張貼留言