Arduino Nano 驱动迷你 LED 矩阵时钟 - 多模式显示
元件与物料
| 元件 | 数量 | 备注 |
|---|---|---|
| Arduino Nano R3 | 1 | 主控 |
| DS3231M 高精度 RTC 模块 (±5ppm) | 1 | I2C 接口,带备用电池 |
| MAX7219 32×8 LED 点阵模块 (四合一) | 1 | AliExpress 低价购得 |
| 轻触按键 | 2 | 菜单切换与设置 |
必需工具
- 电烙铁
软件与在线服务
- Arduino IDE
项目简介
参考 Nick's LED Projects 的 4×8×8 矩阵时钟,改用集成度更高、价格更低的 MAX7219 32×8 四合一模块 (单块 PCB 已级联 4 块 8×8),仅修少量代码即可适配。时钟功能丰富,适合桌面摆件。

显示模式
- 基础大字模式:5×7 大字体显示时分,秒闪烁冒号。
- 滚动模式:数字逐行滚动切换,极具动感。
- 小字带秒模式:3×5 细字体显示时分秒。
- 文字模式:英文单词拼写时间,如 “ten past twelve”。
- 日期显示:按键触发显示星期、日期、月份。
- 12/24 小时制切换、亮度 0–15 级可调、随机模式 (每隔 1–4 小时自动切换显示模式)。
- 双按键驱动菜单系统:短按切换模式,长按进入设置 (时间、日期、年份、亮度、随机开关、12/24 制)。
接线简述
- 矩阵模块:DIN→D12, CLK→D11, CS→D10 (级联 4 块)
- DS3231:SDA→A4, SCL→A5 (I2C)
- 按键 A→D2, 按键 B→D3 (上拉输入)

核心库与代码结构
LedControl:驱动 MAX7219 级联RTClib:DS3231 时间读写Button:按键去抖与事件检测- 自定义字库:5×7 大字、3×5 小字、滚动动画帧生成
完整代码 (`Mini Clock v1.0`) 约 600 行,包含状态机、动画引擎、菜单系统、RTC 校准、随机模式调度等。关键函数:
- `basic_mode()` / `small_mode()` / `slide()` / `word_clock()`:四大显示模式
- `switch_mode()` / `setup_menu()`:按键交互
- `set_time()` / `set_intensity()` / `set_ampm()` / `set_random()`:参数设置
- `slideanim()`:逐行滚动动画核心
- `crossFade()` / `prepareCrossFade()`:NeoPixel 色彩渐变 (本项目未用,但代码保留)
// 关键配置
LedControl lc = LedControl(12, 11, 10, 4); // DIN, CLK, CS, 设备数
RTC_DS1307 ds1307; // 兼容 DS3231
Button buttonA(2, BUTTON_PULLUP), buttonB(3, BUTTON_PULLUP);
byte intensity = 7; // 默认亮度
byte clock_mode = 0; // 0=基础, 1=小字, 2=滚动, 3=文字, 4=设置
bool random_mode = false;
库文件需单独下载 (原文提供打包下载)。上传固件后,长按按键 A 进入设置菜单,按提示完成时间校准即可使用。
制造工艺
- 布谷鸟钟:历史、工艺与现代演变
- Arduino 迷你 Boss 战游戏:复古风格项目
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- 用 Arduino UNO 制作柏林时钟 – DIY LED 矩阵时钟
- 模拟指针风格 POV 时钟:Arduino Nano + 17 LED + 霍尔传感器
- 互动 LED 矩阵门显:PIR 触发节日问候 + 待机特效
- 声控 8 路 LED 灯光秀:Arduino 入门项目
- 从零构建智能 Arduino 四足机器人:完整指南
- DIY 热熔胶棒 LED 矩阵灯 — 打造多彩显示屏
- Arduino Nano 直驱 8×8 LED 点阵:无驱动芯片、无库文件
- 构建LED定序器:555定时器与4017计数器——分频与去抖动
- MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算