把遇到錯誤的、學習到的前端筆記在這邊

總網頁瀏覽量

Copyright © Tzeng Ying-chi. 技術提供:Blogger.

2019/09/26

[2019鐵人賽] - 暫時先發 14.筆記IoT初練習- 用JavaScript控制Arduino吧!炫炮廣告跑馬燈?Johnny Five 之 Led.Matrix


炫不炫我是不知道啦XD 點進來讓我們繼續看下去~

LED 系列實在有夠多..... _(:3 」∠ )_
但也因為市面上的需求量大、應用方面也廣,處處都可以看到LED的應用!

LED Matrix 介紹

這次要介紹的是 8*8的 LED 矩陣( 8*8 LED Matrix )
乍看之下好像很難耶....

不....其實他就是非常多顆 LED 包裝在一塊而已XD
市面上的 LED Matrix 非常多種,不只8*8的規格,還有4*4、10*10、n*n等等的

Google一下發現居然有 RGB 的 LED Matrix ,果然我又老了....Orz

像LED Matrix的應用非常非常廣~

舉凡區公所啦~學校啦~都可以看到的廣告招牌
「跑馬燈 梗」的圖片搜尋結果


超炫炮的LED Cube
「Led cube」的圖片搜尋結果

其他就讓大家自行搜尋啦~σ`∀´)σ

硬體部分 LED Matrix 電路

普通的 LED Matrix 指的是像這樣的電子零件↓
> 本魯宅的 LED Matrix 


那個洞洞其實都是 LED 所組成的,零件也一樣有分共陰和共陽極!
如果想要獨自接電路的人需要注意一下~

但我們要使用的是 LED Matrix 模組,省略必須了解電路的步驟~

LED Matrix 模組差在哪?


LED Matrix 模組化主要多了下面那顆 IC -「MAX7219」

以往接一顆 LED 就要接一個分壓電阻加上Vcc、GND,64顆 LED 至少就要 64個電阻+N個接點,這樣電路佈線豈不亂死?
MAX7219為 LED 驅動 IC,解決了多個 LED 使用上的問題,最多能驅動8個七段顯示器(七段顯示器是由8顆LED所組成);
因為一顆MAX7219能驅動 8組七段顯示器 8*8=64 顆 LED ,故此特性也能驅動一顆 8*8 的 LED Matrix!只要在IC外部上接一顆電阻,即可驅動 LED 並編碼顯示。

PS:抱歉~七段顯示器本來要先講,但還沒實驗完,故先講解 LED Matrix...Orz

MAX7219還提供了兩組顯示模式

> 原始資料模式
在原始資料模式中,開發者需自行指定七段顯示器中每個筆畫的明滅資訊。

> 2. BCD 碼模式
BCD 碼 decode 模式的模式下,每個字的筆畫構成已被事先定義、並依照 BCD 碼 B 區的規範儲存在 MAX7219 當中。因此要顯示這些字時,僅需提供每個字所對應的索引編號即可。


相關資料
- Maxim-Serially Interfaced, 8-Digit LED Display Drivers
MAX7219 Data Sheet:
https://www.sparkfun.com/datasheets/Components/General/COM-09622-MAX7219-MAX7221.pdf

- 聯發科-使用 MAX7219 驅動七段顯示器
https://docs.labs.mediatek.com/resource/linkit7697-arduino/zh_tw/tutorial/driving-7-segment-displays-with-max7219

軟體部分 - Led.Matrix


> Johnny-Five Led.Matrix


可以看到 Johnny-five 簡介說明,提供 8*8 或是 8*16 的矩陣的鏈接,最多可以提供 8 組輸出,即控制 512 顆 LED!!(哇~這麼多嚇死人~ ∑(ι´Дン)ノ

使用Johnny Five Led.Matrix,元件初始化首先要 new 一個 five.Led.Matrix 物件,並且pins為必要參數,可以用物件或是陣列表示,pins物件有三個鍵值(key)分別為
> - data 資料
> - clock 時脈
> - cs LOAD 訊號

```
new five.Led.Matrix({
    pins: {
        data: 2,
        clock: 3,
        cs: 4
    }
});
```
剛剛的硬體對照接腳的話則
> data 為 DIN ,用來輸入資料。
> clock為CLK、cs為CS,兩者是用來控制訊號,將資料寫入MAX7219內部的暫存器。

 > 接線圖部分
Johnny-Five 在 LED Matrix 的 API 提供八大類方法讓我們使用

- on - 點亮矩陣
- off - 關閉矩陣
- clear - 清除矩陣狀態
- brightness - 設定矩陣亮度
- led - 設定每個行列的亮滅。
state參數:0 on/1 off 其餘數字不會有動作
(若為RGB的矩陣則可以設定顏色)
- row - 設定第 i 排的 row 的 n 顆 led 亮/滅。
n 採用的是 BCD 加法器,數值範圍(0~255)
- column - 設定第 i 排的 column 的 n 顆 led 亮/滅。
n 採用的是 BCD 加法器,數值範圍(0~255)
- draw - 顯示已定義的字元表字元。

PS:因為 row 和 column 的中譯「行/列」台灣和大陸翻譯講法相反,很容易搞混...
所以採用統一英文講解。


---
Johnny-Five 的 LED Matrix 可以鏈結最多 8 個矩陣 LED,LED Matrix API 每種方法皆可以指定要哪一個矩陣 LED 動作!


0 留言:

張貼留言