翻牌顯示器系統架構規劃全紀錄|ESP32 + PCF8574 + TCA9548A + ULN2003 + 28BYJ-48
翻牌顯示器系統架構規劃全紀錄|ESP32 + PCF8574 + TCA9548A + ULN2003 + 28BYJ-48
🪧 專案背景
我想打造一面可以從手機輸入文字,透過 WiFi 控制的「機械翻牌牆」,像機場的那種咔咔聲字牌牆。
這面牆由大量翻牌模組組成,每個模組能夠顯示一個英文字母,並具備歸零感測、地址識別與模組間串接能力。
為了讓系統具備模組化、擴展性與可靠性,我設計了三層架構,並使用 I²C 擴展、GPIO 控制、以及 ESP32 為主控核心。
[使用者 UI] ↓ [ESP32 主控板] ↓(I²C 主匯流) [轉接板區(多組)] ↓(I²C 分區通道) [翻牌模組(最多 64+)]
💡 第一層:ESP32 主控板
- 控制核心:ESP32(負責 WiFi / Web UI / 控制邏輯)
- 使用兩顆 TCA9548A I²C 多路選擇器
- 每顆有 8 個 I²C 通道
- 共可控制 最多 16 組模組區
- 搭配 12V → 5V 降壓模組,供 ESP32 和 TCA9548A 使用
- 每個 TCA 通道輸出一組 SDA / SCL / GND 至下一層轉接板
⚡ 第二層:轉接板(模組區管理單元)
功能:
- 負責「一區」最多 8 顆翻牌模組的供電與 I²C 分配
- 需加上SDK/SCL上拉電阻提供下位機
- 搭配一顆 12V → 5V 降壓模組(MP1584 / LM2596)
- I²C 分配接頭(4pin)輸出給模組串接
地址管理:
- 使用 3 組 2-pin 排針跳帽(或焊點)
- 控制該轉接板的模組位址區(例如從 0x20 開始)
- 搭配模組預設位址編碼,模組不用改地址,只要設定轉接板起始位址即可
🧱 第三層:翻牌模組(最小顯示單元)
每個模組包含以下元件:
| 元件 | 功能 |
|---|---|
| PCF8574 | I²C 擴展 GPIO,4 位控制 ULN2003A,1 位讀取感測器 |
| ULN2003A | 驅動 28BYJ-48 步進馬達 |
| 28BYJ-48 | 機械翻牌動力來源 |
| A3144 霍爾感測器 | 偵測翻牌歸零點 |
| 4pin I²C 串接座 | 方便模組間 Daisy Chain 串接 |
| 0.1μF 過濾電容 | 穩定電源訊號與抗干擾 |
🔋 電源設計規劃
- 主電源:110V AC → 12V DC 開關電源
- 每個轉接板用 降壓模組 產出 5V 電源供模組使用
- 單顆模組最大功耗約 1.2W(轉動中)
- 8 模組 ≈ 9.6W → 建議用 12V 1A 模組(含 margin)
建議配置:
| 模組數量 | 降壓模組功率建議 |
|---|---|
| ≤ 4 | MP1584 / 5V 1A 模組 |
| ≤ 8 | LM2596 / 5V 2A 模組 |
🧠 地址管理與模組配置邏輯
| 層級 | 地址管理方式 |
|---|---|
| ESP32 → TCA9548A | 主控選通通道 0~7 |
| 轉接板 | 跳帽切換模組位址起點(如從 0x20 開始) |
| 模組 | 預設地址,固定排位如 0x20、0x21… |
✅ 使用跳帽的好處:轉接板可自由換位置、模組免焊設定,維修便利!
💻 軟體邏輯概述
- ESP32 啟動 WiFi AP,建立 Web UI
- 使用者輸入要顯示的內容
- ESP32 解析文字,對應各模組目標字母
- 控制:
- 切換 TCA9548A 對應通道
- 依模組位址下指令(翻牌、歸零)
- 模組執行:馬達轉動、感測歸零點、到位
🛠 待辦與強化建議(後續計畫)
- ✅ 開發模組狀態回報機制(透過中斷腳或回覆訊號)
- ✅ 增加模組側「地址自動回報」機制(EEPROM ID 或 I²C Scan Map)
- ✅ 設計測試板與除錯點(TP + LED 指示)
- ✅ 模組排線模組化(選用 FPC or JST 連接器)
- ✅ 支援遠端 OTA 更新
✅ 結語
這次的翻牌牆系統設計從模組細節一路考慮到整體電源管理、地址規劃與硬體擴展性。
透過 I²C 擴展 + TCA 多路控制,我們用非常少的 GPIO 實現了大量翻牌模組的控制。整體系統模組化、可拆裝、易維修,未來不論是做時鐘牆、跑馬燈、拼字遊戲牆都可以輕鬆擴展。