自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
元器件清单
| Arduino UNO | ×1 |
| Freetronics DMD 点阵显示屏 | ×1 |
| RTC 实时时钟模块 | ×1 |
| 轻触按钮 | ×1 |
| 电源开关 | ×1 |
软件工具
Arduino IDE
项目简介
这是一个适合想要大尺寸时钟的项目,可在12米外清晰读取时间,也可近距离查看。时钟尺寸可通过级联显示屏任意扩展。内置闹钟功能可作为事件触发器,例如控制花园自动灌溉系统、提醒每周聚会,或驱动继电器执行任意任务。
所需材料
- Freetronics DMD 显示屏
- Arduino 兼容 RTC 实时时钟模块
- 蜂鸣器(可选,音量需足以唤醒你)
- 轻触按钮
- 两个拨动开关(电源开关可选)
- Arduino UNO 或兼容开发板
- Arduino 扩展板(可选)
- Arduino 电源适配器
- 5V 稳压电源,4-30A(高亮度模式可选,正常运行不需要)
硬件连接
第一部分:电子电路
- 将蜂鸣器、消音按钮、闹钟设置开关插在面包板上
- 各开关一脚接地,蜂鸣器 GND 接 Arduino GND
- 闹钟设置开关另一脚接 D2,消音按钮接 D3,蜂鸣器接 D4
- 根据模块类型将 RTC 模块接线(参考厂家资料)
- 连接 DMD 控制器到 Arduino 并插入 DMD 屏幕
- 如需全亮度,给 DMD 高亮度端子接入 5V 电源
- 若做成永久电路,可将所有元件焊接到扩展板上
第二部分:软件设置
首先安装 DMD 库(下载地址见原文),放入 libraries 文件夹。主程序可从 Prototyping Corner 或本页面底部下载。
设置 RTC 时间:修改代码第 117-124 行的时间参数,取消第 124 行注释上传一次,再注释掉重新上传,否则 RTC 会停在设定时间。
闹钟设置在第 593-594 行:第 593 行设置星期(1=周日 ... 7=周六),第 594 行设置 24 小时制触发时间。
进阶扩展
增加显示屏
可级联多块 DMD 组成更大时钟,详见相关文档。
增加多组闹钟
在主循环中调用如下函数即可添加新闹钟:
void CheckAlarm_新编号() {
AlarmSet = digitalRead(AlarmSetPin);
Snooze = digitalRead(SnoozePin);
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
// 允许触发的星期
if(dayOfWeek == 2 || dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5 || dayOfWeek == 6) {
if(hour == 18 && minute == 05) { // 24小时制时间
if(AlarmSet == LOW) {
Snooze = digitalRead(SnoozePin);
while(Snooze == HIGH) {
Snooze = digitalRead(SnoozePin);
// 此处添加触发动作
}
}
}
}
}
完整代码
代码包含:SPI 通信、DMD 驱动、RTC 读写、时钟显示(星期、日期、时分)、闹钟逻辑、蜂鸣器报警序列。核心函数:runClock() 刷新显示,CheckAlarm() 判断闹钟条件,AlarmSequence() 执行报警闪烁与蜂鸣。完整代码见原文 pre 块。
原理图

制造工艺
- 布谷鸟钟:历史、工艺与现代演变
- Arduino POV 时钟:自制视觉暂留 LED 显示器
- 复古 Numitron 管时钟:Arduino Nano 驱动,低温可靠省电
- DIY Arduino单词时钟 – 极简优雅的实时文字显示
- 自制 Arduino 伊斯兰祷告时间实时时钟
- DIY 蓝牙控制 Arduino 间谍小车
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- Arduino Due 驱动 3.2″ TFT 实现温度监测与实时时钟
- 用 Arduino UNO 制作柏林时钟 – DIY LED 矩阵时钟
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟