913 字
5 分鐘
Arduino 8x8 LED 矩陣顯示器專案
Arduino 8x8 LED 矩陣顯示器專案
最近完成了一個有趣的 Arduino 專案 - 8x8 LED 矩陣顯示器!這個專案結合了硬體連接和程式設計,非常適合初學者入門。
專案概述
這個專案可以:
- 顯示數字和英文字母
- 播放簡單的動畫效果
- 顯示滾動文字
- 製作小遊戲(如貪食蛇)
所需材料
硬體材料
- Arduino Uno R3 × 1
- 8x8 LED 矩陣模組(MAX7219) × 1
- 杜邦線 × 若干
- 麵包板 × 1
- 電源供應器(可選)
軟體工具
- Arduino IDE
- LedControl 函式庫
硬體連接
接線圖
Arduino Uno → MAX7219 LED 矩陣
VCC → VCC (5V)
GND → GND
Pin 12 → DIN (數據輸入)
Pin 11 → CS (片選)
Pin 10 → CLK (時鐘)連接步驟
- 電源連接:將 LED 矩陣的 VCC 連接到 Arduino 的 5V,GND 連接到 GND
- 數據連接:按照上面的對應關係連接數據線
- 檢查連接:確保所有連接牢固,避免接觸不良
程式設計
安裝函式庫
首先在 Arduino IDE 中安裝 LedControl 函式庫:
工具 → 管理函式庫 → 搜尋 "LedControl" → 安裝基礎程式碼
#include "LedControl.h"
// 初始化 LED 矩陣控制器
// Pin 12 -> DIN, Pin 11 -> CS, Pin 10 -> CLK, 1個矩陣
LedControl lc = LedControl(12, 11, 10, 1);
void setup() {
// 喚醒 MAX7219
lc.shutdown(0, false);
// 設定亮度 (0-15)
lc.setIntensity(0, 8);
// 清除顯示
lc.clearDisplay(0);
}
void loop() {
// 顯示笑臉
showSmiley();
delay(2000);
// 顯示數字
showNumber(8);
delay(2000);
// 清除顯示
lc.clearDisplay(0);
delay(1000);
}
void showSmiley() {
byte smiley[8] = {
B00111100,
B01000010,
B10100101,
B10000001,
B10100101,
B10011001,
B01000010,
B00111100
};
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, smiley[i]);
}
}
void showNumber(int num) {
// 數字 8 的點陣圖
byte eight[8] = {
B00111100,
B01100110,
B01100110,
B00111100,
B01100110,
B01100110,
B01100110,
B00111100
};
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, eight[i]);
}
}進階功能:滾動文字
void scrollText(String text) {
for (int scroll = 0; scroll < text.length() * 8; scroll++) {
lc.clearDisplay(0);
// 這裡需要實作字母的點陣圖
// 每個字母用 8x8 的二進位表示
delay(100);
}
}實作心得
遇到的問題
- 接線錯誤:一開始 DIN 和 CLK 接反了,導致顯示異常
- 電源不足:使用 USB 供電時,亮度太高會導致電壓不穩
- 程式邏輯:二進位點陣圖的設計需要一些想像力
解決方案
- 仔細檢查接線:多次確認接線圖,使用萬用電表測試
- 調整亮度:降低 LED 亮度設定,或使用外部電源
- 使用工具:網路上有很多點陣圖生成器可以幫助設計
擴展想法
可以添加的功能
- 時鐘顯示:結合 RTC 模組顯示時間
- 溫度顯示:加入溫度感測器
- 遊戲功能:製作貪食蛇或俄羅斯方塊
- 音樂視覺化:配合音樂節拍閃爍
硬體升級
- 使用多個 8x8 矩陣拼接成更大的顯示器
- 加入按鈕控制不同模式
- 使用 ESP32 添加 WiFi 功能
學習收穫
這個專案讓我學到了:
- 硬體連接:理解數位訊號的傳輸原理
- 函式庫使用:如何有效利用現有的程式庫
- 二進位操作:點陣圖的二進位表示方法
- 除錯技巧:從硬體到軟體的系統性除錯
總結
Arduino LED 矩陣是一個很棒的入門專案,它結合了:
- 基礎的電路連接
- 程式邏輯設計
- 創意展現空間
推薦給所有對 Arduino 有興趣的同學!下一步我打算嘗試製作一個更大的 16x16 LED 矩陣。
參考資料
專案完成時間:2024年12月17日
Arduino 8x8 LED 矩陣顯示器專案
https://vic88-web.vercel.app/posts/arduino-led-matrix/