2011年1月31日 星期一

Arduino 筆記 – Lab19 使用 5x7 LED Matrix

實驗目的

練習使用 5x7 LED Matrix (點矩陣 LED)。

LED Matrix 簡介

LED Matrix (點矩陣 LED)在日常生活很常見,在公共場所中,政府的公告或宣導經常使用 LED 字幕來展示,比如小紅人和小綠人的交通號誌、高速公路上用來提醒路況的字幕機、車站裏公告行車資訊的字幕機等;在馬路上,也可以看到很多商店的廣告跑馬燈或動畫展示,大部份也都是使用 LED Matrix 做的。LED Matrix 有很多種型式,有單色,有雙色,也有全彩的。

image

(圖片來源:  Alltronics.com)

在使用 LED Matrix 的時候,務必要先看 datasheet,看它的腳位圖以確認接腳的位置。我用的是 5x7 的 LED Matrix,型號是 Kingbright TC12-11EWA,它一共有 14 支接腳,上下各 7 支接腳,腳位編排如下圖,從正面看,標籤在下方,pin 1 就在左下角,然後照著逆時針的方向走,pin 7 在右下角,pin 8 在右上角,而 pin 14 位於左上角。

image 

 image

(圖片來源: 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

參考接線圖:

image

備註:7 條紅線是 Row0~Row6,接在 Arduino pin 2 ~ pin 8;而 5 條綠線是 Column0~Column4,接在 Arduino pin 13 ~ pin 9

程式碼

底下是一個 LED Matrix 範例程式(HelloMatrix.pde),它的功能很簡單,它由下而下把 LED 一排一排(Row)打開,接著由左至右把 LED 一行一行(Column)關掉:

範例照片/影片
延伸閱讀

2 意見:

TT 提到...

可以請教一下, 我也做過類似的控制, 但此類模組的控制是以行列為單位, 因此想呈現單一點是OK, 但若想同時呈現兩個不同的單點, 通常會出現 4 個點 (行列交會處), 例如我想點亮 (1,1)、(3,3)兩點, 但都會多出 (1,3)、(3,1)這兩個點

我也試過視覺暫留的作法, 快速點亮1點、關閉、再點亮下1點, 可以做到, 但亮度就降低很多,

請不吝指教, 謝謝!

TT 提到...

可以請教一下, 我也做過類似的控制, 但此類模組的控制是以行列為單位, 因此想呈現單一點是OK, 但若想同時呈現兩個不同的單點, 通常會出現 4 個點 (行列交會處), 例如我想點亮 (1,1)、(3,3)兩點, 但都會多出 (1,3)、(3,1)這兩個點

我也試過視覺暫留的作法, 快速點亮1點、關閉、再點亮下1點, 可以做到, 但亮度就降低很多,

請不吝指教, 謝謝!