實驗目的
練習使用 5x7 LED Matrix (點矩陣 LED)。
LED Matrix 簡介
LED Matrix (點矩陣 LED)在日常生活很常見,在公共場所中,政府的公告或宣導經常使用 LED 字幕來展示,比如小紅人和小綠人的交通號誌、高速公路上用來提醒路況的字幕機、車站裏公告行車資訊的字幕機等;在馬路上,也可以看到很多商店的廣告跑馬燈或動畫展示,大部份也都是使用 LED Matrix 做的。LED Matrix 有很多種型式,有單色,有雙色,也有全彩的。
(圖片來源: Alltronics.com)
在使用 LED Matrix 的時候,務必要先看 datasheet,看它的腳位圖以確認接腳的位置。我用的是 5x7 的 LED Matrix,型號是 Kingbright TC12-11EWA,它一共有 14 支接腳,上下各 7 支接腳,腳位編排如下圖,從正面看,標籤在下方,pin 1 就在左下角,然後照著逆時針的方向走,pin 7 在右下角,pin 8 在右上角,而 pin 14 位於左上角。
(圖片來源: Interfacing dot matrix display)
LED Matrix 分成共陽極型和共陰極型兩種,上圖左是共陽極(Common Anode),圖右則是共陰極(Common Cathode)。
那麼要怎麼控制 LED Matrix 上的燈號?以我所用的是 5x7 共陰極 LED Matrix 為例(如上圖右),假如我把 pin 9 導通,由於 5 個 Column 預設都是接地的,因此當 pin 9 導通時第一列 (Row)全部的燈號都會亮,假如我們只要亮第一顆燈就好,那麼就必須把其它 4 個 Column 的腳位(pin 3, pin 4/11, pin 10 和 pin 6 這 4 支接腳)設定為 HIGH 把其它 4 個燈關掉,這樣就可以達到只亮第一顆燈的目的了。
材料
- 麵包板 x 1
- Arduino 主板 x 1
- 共陰極 5x7 LED Matrix x 1
- 單心線 x N
接線
照著下表把 Arduino 與 LED Matrix 連接起來:
LED Matrix 接腳 | Arduino 接腳(x = not connected) | 說明 |
1 | 6 | Row4 |
2 | 8 | Row6 |
3 | 12 | Column1 |
4 | 11 | Column2 |
5 | x | |
6 | 9 | Column4 |
7 | 7 | Row5 |
8 | 4 | Row2 |
9 | 2 | Row0 |
10 | 10 | Column3 |
11 | x | |
12 | 5 | Row3 |
13 | 13 | Column0 |
14 | 3 | Row1 |
參考接線圖:
備註:7 條紅線是 Row0~Row6,接在 Arduino pin 2 ~ pin 8;而 5 條綠線是 Column0~Column4,接在 Arduino pin 13 ~ pin 9
程式碼
底下是一個 LED Matrix 範例程式(HelloMatrix.pde),它的功能很簡單,它由下而下把 LED 一排一排(Row)打開,接著由左至右把 LED 一行一行(Column)關掉:
可以請教一下, 我也做過類似的控制, 但此類模組的控制是以行列為單位, 因此想呈現單一點是OK, 但若想同時呈現兩個不同的單點, 通常會出現 4 個點 (行列交會處), 例如我想點亮 (1,1)、(3,3)兩點, 但都會多出 (1,3)、(3,1)這兩個點
回覆刪除我也試過視覺暫留的作法, 快速點亮1點、關閉、再點亮下1點, 可以做到, 但亮度就降低很多,
請不吝指教, 謝謝!
可以請教一下, 我也做過類似的控制, 但此類模組的控制是以行列為單位, 因此想呈現單一點是OK, 但若想同時呈現兩個不同的單點, 通常會出現 4 個點 (行列交會處), 例如我想點亮 (1,1)、(3,3)兩點, 但都會多出 (1,3)、(3,1)這兩個點
回覆刪除我也試過視覺暫留的作法, 快速點亮1點、關閉、再點亮下1點, 可以做到, 但亮度就降低很多,
請不吝指教, 謝謝!