Arduino UNO Q [1] (以下簡稱 UNO Q)開發板上有很多內建的元件可直接調用,為了讓大家能更熟悉開發板上的元件控制,本文將先從能產生簡單顯示介面的 LED 點矩陣介紹起。
1. UNO UNO R4 WIFI 與 UNO Q 點矩陣 LED 比較
第一次拿到 UNO Q 板子的朋友可能會覺得很眼熟,和 Arduino UNO R4 WIFI(以下簡稱 R4 WIFI) 一樣有一個很漂亮的 LED 點矩陣,但點亮後就可明顯發覺很多細節並不一樣,如 Fig. 1 所示。
首先是 LED 數量和顏色不同, R4 WIFI 是 8×12 (96)個紅色 LED,而 UNO Q 是 8×13 (104)個藍色 LED。
再確認硬體規格後,發覺硬體結構也不同,R4 WIFI 為了節省硬體控制腳位,於是使用 MCU 的 11 個通用輸出入腳(GPIO)透過三態邏輯多工(或稱查理多工 Charlieplexing)來直接掃描點亮 96 顆 LED。而 UNO Q 則是使用 STM32 底層脈波寬度調變(PWM)定時器(Timer)和中斷自動對行列進行掃描。
在 LED 亮度控制方面,R4 WIFI 原則上只能控制 LED 顯示二值化影像(亮或不亮),若真的需要顯示不同程度亮度的灰階影像,則需透過軟體 PWM 方式來調控。而 UNO Q 則有內建硬體8級灰階控制,可直接設定硬體定時器自動執行高頻 PWM 掃描,直接呈現不同程度的亮暗影像內容。
在程式控制上,R4 WIFI 使用 「Arduino_LED_Matrix.h」 來驅動。而 UNO Q 可使用Python Arduino Graphics 函式庫結合 RouterBridge 來開發或者使用 MCU 原始開發方式。

圖1:Arduino UNO R4 WIFI 和 UNO Q LED點矩陣比較表。(OmniXRI整理製作,2026/06/03)
2. 以 MCU 方式在點矩陣顯示靜態圖案
首先安裝好 Arduino APP Lab 並以 Type C 纜線將開發板和電腦連接好,可參考「【Arduino UNO Q 專欄02】軟體開發初體驗」。
接著開啟 APP Lab,進入「My App」,點擊右上角「Create New App」建立新專案並填入自訂名稱,例「LED_Matrix_Test_Arduino_Logo」。
進入後,點擊左側「sketch.ino」,就可開始編輯 MCU 程式。這裡我們假設要在點矩陣 LED 顯示一個靜態 Arduino Logo。只需引用「Arduino_LED_Matrix.h」,再定義一個 13 x 8 (共104個)的資料矩陣。只需依照 LED 排列順序填入 0 或 1 即可。如 Fig. 2 左下所示。

圖2:UNO Q 板載 LED 及點矩陣資料位置定義。(OmniXRI整理製作,2026/06/03)
原則上點矩陣 LED 是可以控制8階灰度顯示,若只想亮和不亮,則可利用「setGrayscaleBit(1)」來完成,而 1 即代表使用 1 個位元來控制亮度。若設為 3 則代表可控制 2^3 = 8 種亮度。若想令資料格式和一般電腦上以 8 位元來表示亦可設為 8 ,只是系統會自動等比縮到 8 種灰度,即灰度除 64 而得到最後灰度。
只要將下列程式複製到程式區,再按下右上角「RUN」,等待程式編譯和上傳後就可看到自定義圖像顯示在點矩陣 LED 上。如圖3所示。

圖3:二階及八階灰度顯示結果。(OmniXRI整理製作,2026/06/03)
3. 透過 MPU 呼叫 MCU 在點矩陣顯示動畫
點選左上角 My Apps,再點擊左側 Examples,捲到最下方,選擇「Weather forecast on LED Matrix [3]」,再按左上角複製一份到 My App,專案名稱可採用預設的或自行重新命名。這個 App 程式可以讀取指定城市的天氣,並以簡易動畫形式顯示晴天(Sunny)、多雲(Cloudy)、雨天(Rainy)、下雪(Snowy)及起霧(Foggy)。
進入程式編輯頁面後,會有 MPU 的 Python 碼(main.py)、 MCU 的 C++ 程式碼(sketch.ino)和頭文件(weather_frames.h)。這個範例程式的主要功能如下所示。
- main.py – MPU 主程式,負責讀取天氣結果(文字串)並透過橋接器(Bridge)提供給 MCU,用以改變點矩陣 LED 動畫顯示內容。
- sketch.ino – MCU 主程式,負責指定城市名稱,接收 MPU 從橋接器(Bridge)送來的天氣內容並載入對應動畫內容並顯示在點矩陣 LED 上。
- weather_frames.h – 定義五種天氣的動畫內容。
3.1. main.py
定義 get_weather_forecast 函式,從網路取得指定城市的天氣,並傳遞到 MCU 中。
3.2. sketch.ino
只需改變範例程式的城市名稱即可,接下來就只要等 MPU 送來結果,再由 MCU 改變矩陣 LED 顯示內容即可。這裡使用「loadSequence()」來讀取「weather_frames.h 」中預定義好的動畫資訊,包含顯示內容及延時。
以天晴(sunny)為例(如下程式),三列分別三幅圖案,每一列的最後一個數值代表停留多少 mS ,由於 8×13=104,若以32位元整數,16進制8位數表示,則需四組數值,最後一個16進制只使用到前8位元(16進制2位數)。需要幾種變化就設計幾列的數值定義。其它天氣符號動畫依此類推。


圖4:Weather forecast on LED Matrix 範例程式及執行結果。(OmniXRI整理製作,2026/06/03)
結語
Arduino UNO Q 開發板自帶 8×13 點矩陣 LED,這樣很方便我們顯示文字、靜態圖像甚至是動態圖畫。不管是直接撰寫 MCU C++ 程式控制顯示內容,還是由 MPU Python 程式透過橋接器(Bridge) 來控制 MCU 都很方便,同時還可自定義八個灰度顯示,讓顯示內容更具彈性。後續就有賴使用者的創意,開發出更多有趣的互動顯示裝置。
參考文獻
[1] Arduino, Document – Hardware – UNO Q – UNO Q User Manual
https://docs.arduino.cc/tutorials/uno-q/user-manual/
[2] Arduino, Document – Software – APP Lab – Tutorial: Using Arduino App Lab
https://docs.arduino.cc/software/app-lab/getting-started/quickstart/
[3] Arduino, Github – Weather forecast on LED matrix
https://github.com/arduino/app-bricks-examples/tree/main/examples/weather-forecast
- 【Arduino UNO Q專欄03】板載點矩陣LED應用 - 2026/06/08
- 【Arduino UNO Q專欄02】軟體開發初體驗 - 2026/05/21
- 【Arduino UNO Q 專欄01】 基礎硬體及軟體簡介 - 2026/05/07
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!






