DIY Arduino单词时钟 – 极简优雅的实时文字显示
核心物料
| 分类 | 元件 | 数量 | 关键参数 |
|---|---|---|---|
| 主控 | Arduino UNO / 裸片ATmega328P | 1 | 任意兼容板均可 |
| DS1307 RTC模块 | 1 | 自带纽扣电池,掉电走时 | |
| 驱动链 | 74HC595移位寄存器 | 3 | 串转并,控制22路LED |
| ULN2803A达林顿阵列 | 3 | 大电流驱动LED阵列 | |
| 白光LED灯带 | ~2米 | 每3颗可剪,自带背胶 | |
| 结构 | 万用板/IC座/连接线/12V电源 | 若干 | |
| 外观 | 肯特纸/亚克力板/字模贴纸/胶带/切割工具 | 若干 | 制作字面遮光盒 |
电路原理
仅占用5个IO口:3根驱动三级串联74HC595(Data/Clock/Latch),2根I2C读RTC(SDA/SCL)。ULN2803为**共阴极驱动**——LED灯带正极并联接12V,负极分别接ULN2803输出端(内部达林顿管对地导通)。
制作步骤
1. 电路焊接
在万用板上按原理图焊接三组“595+ULN2803”驱动模块,预留排针连接Arduino与RTC。建议使用IC座便于维修。
2. 字面框架制作
- 按排版剪裁肯特纸做前面板,贴上单词贴纸(如“IT IS FIVE O'CLOCK”)
- 剪1.5cm宽纸条做竖向/横向隔断,粘贴形成独立格仓,**防止光晕串扩**
- 背板粘贴LED灯带,每词一段(最短3颗),正极并联,负极分别引线至驱动板
3. 固件逻辑
// 核心映射:每个单词对应一位
#define W_IT 0 // 第1个595的Q0
#define W_IS 1
#define W_FIVE 2
// ... 共22位覆盖三个595
void WriteLEDs(uint32_t bits) { // 24位含保留
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLK, MSBFIRST, bits >> 16);
shiftOut(DATA, CLK, MSBFIRST, bits >> 8);
shiftOut(DATA, CLK, MSBFIRST, bits);
digitalWrite(LATCH, HIGH);
}
void displayTime() {
DateTime now = rtc.now();
uint32_t mask = 0;
// 逻辑示例:5:10 → "IT IS FIVE TEN"
if (now.minute() < 5) mask |= BIT(W_IT)|BIT(W_IS)|BIT(W_OCLOCK);
else if (now.minute() < 10) mask |= BIT(W_IT)|BIT(W_IS)|BIT(W_FIVE)|BIT(W_PAST);
// ... 其它时间段组合
WriteLEDs(mask);
}
自检模式:上电依序点亮所有单词,验证接线无误。
4. 组装合箱
- 驱动板/Arduino/RTC置于底盒
- LED面板嵌入隔断框
- 亚克力面板盖合,背部预留挂钩孔
特色与优化
- **零按键维护**:DS1307纽扣电池续航数年,旅行断电不丢时
- **扩展性强**:改用WS2812可实现彩色/呼吸/亮度自适应
- **代码开源**:GitHub完整工程
制造工艺
- Arduino POV 时钟:自制视觉暂留 LED 显示器
- 用 Adafruit 60 LED NeoPixel 环形灯和 Arduino 制作时尚挂钟
- 自制 Arduino 伊斯兰祷告时间实时时钟
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- 意大利语单词时钟:Arduino Nano + NeoPixel 144 灯珠 + LCD + RTC 打造
- 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
- Arduino 串口简易计算器:两数四则运算演示
- SerialDebug:为 Arduino 引入分级日志的专业调试库
- 轻松打造 Arduino 秒表:按钮触发计时器
- Arduino 洗手计时器:抗击 COVID-19 的简易 DIY 工具
- 用 Arduino Pro Mini 与 DS1302 RTC 打造精准七段数码管时钟
- 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟