| 項目 | 規格/數量 | 備註 |
|---|---|---|
| LED | 64 顆 (4×4×4),3mm 散射/霧狀,單色或 RGB | RGB 需 3× 腳位驅動 |
| 主控 MCU | Arduino Nano / Uno / ESP32 / STM32F103 | 建議 ESP32:效能足、內建 Wi-Fi/BLE 可無線控制 |
| 驅動擴展 | 74HC595 × 4 (列掃描) + ULN2803 / MOSFET × 4 (層選擇) | 或用 MAX7219 × 4 簡化接線 |
| 電阻 | 220Ω × 64 (限流) 或每列 1 顆配合 595 | 依 LED Vf/If 計算 |
| 電源 | 5V 3A 以上開關電源 / USB-C PD | 全亮白光約 64×20mA ≈ 1.3A,留餘量 |
| 結構件 | 亞克力板/PCB 定制骨架、排針排母、杜邦線、熱縮管 | 間距 2.54mm 方便插拔 |
| 工具 | 電烙鐵、錫線、斜口鉗、萬用表、第三手架 |
// 影像緩衝:4 層 × 16 列 (單色)
uint16_t frame[4] = {0};
void refresh() {
for (uint8_t layer = 0; layer < 4; layer++) {
// 1. 關閉所有層
digitalWrite(LAYER_PINS[0], LOW); ... // 或 ULN2803 全低
// 2. 移出該層 16 bit 資料到 595
shiftOut(DATA_PIN, CLK_PIN, MSBFIRST, frame[layer] >> 8);
shiftOut(DATA_PIN, CLK_PIN, MSBFIRST, frame[layer] & 0xFF);
digitalWrite(LATCH_PIN, HIGH); digitalWrite(LATCH_PIN, LOW);
// 3. 開啟當前層
digitalWrite(LAYER_PINS[layer], HIGH);
delayMicroseconds(250); // 約 1kHz/層
}
}
// 設定單一體素
void setVoxel(uint8_t x, uint8_t y, uint8_t z, bool on) {
if (on) frame[z] |= (1 << (y*4 + x));
else frame[z] &= ~(1 << (y*4 + x));
}
FastLED 或 Adafruit_NeoPixel。4x4x4 led cube arduino、led cube 74hc595從單色 74HC595 版本入手最易上手,熟悉掃描原理後再升級 RGB 或更大尺寸 (8×8×8)。