无限镜面时钟:极致优雅与精准计时的融合
零部件清单
| 组件 | 数量 |
|---|---|
| RTC 实时时钟模块 (DS1302) | 1 |
| Arduino Nano R3 | 1 |
| 10 kΩ 电阻 | 3 |
另需: 60 颗 WS2812B (NeoPixel) RGB LED 灯环、单向镜/半透镜、普通镜子、木板/亚克力制作镜框、电源模块等(详见原文 CAD 文件)。
项目简介
这是一个集无限镜视觉效果与实用时钟于一体的装饰项目。利用广泛应用的 RGB LED,打造出仿佛无限延伸的光隧道,同时准确显示时间。既可自用也可作为精美礼物。观看视频可了解完整制作过程。
核心代码逻辑
代码基于 Adafruit_NeoPixel 和 DS1302 库,主要功能:
- 时间显示: 小时(蓝)、分钟(绿)、秒(红)分别对应 LED 位置;12 小时制,小时指针每 5 个 LED 一格
- 动画模式: 长按设置键进入彩虹跑马灯、剧场追逐等动画
- 时间设置: 三按键(设置/加/减)依次调整时、分,写入 RTC
关键代码片段
// 时间显示核心
void printTime() {
Time t = rtc.time();
saat = t.hr; dak = t.min; sn = t.sec;
if (saat >= 12) saat -= 12;
pixels.setPixelColor(5*saat, pixels.Color(25,25,255)); // 时-蓝
pixels.setPixelColor(dak, pixels.Color(0,200,10)); // 分-绿
pixels.setPixelColor(sn, pixels.Color(255,0,0)); // 秒-红
pixels.show();
// 整分/整时清除上一位残留
}
// 动画子程序
void animasyon() {
colorWipe(strip.Color(255,0,0), 25);
colorWipe(strip.Color(0,255,0), 25);
colorWipe(strip.Color(0,0,255), 25);
theaterChase(strip.Color(127,127,127), 50);
theaterChase(strip.Color(127,0,0), 50);
theaterChase(strip.Color(0,0,127), 50);
// 清屏
}
结构与接线
- DS1302 接 Nano D5/D6/D7 (CE/IO/SCLK)
- NeoPixel 数据线接 D8
- 三个按键分别接 D10/D11/D12 (上拉电阻 10k)
- 电源建议 5V 2A 以上
CAD 文件与原理图见原文附件,可激光切割或 3D 打印镜框结构。
制造工艺
- 布谷鸟钟:历史、工艺与现代演变
- 现代镜子的科学与工艺
- 无限齿轮:41级齿轮箱实现346垓年一圈的旋转
- Arduino POV 时钟:自制视觉暂留 LED 显示器
- DIY Arduino单词时钟 – 极简优雅的实时文字显示
- DIY Arduino 冷镜露点仪:高精度温湿度监测
- DIY 万花筒无限镜 — 打造震撼的 LED 灯光艺术装置
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- 意大利语单词时钟:Arduino Nano + NeoPixel 144 灯珠 + LCD + RTC 打造
- 用 Arduino UNO 制作柏林时钟 – DIY LED 矩阵时钟
- 模拟指针风格 POV 时钟:Arduino Nano + 17 LED + 霍尔传感器
- Verilog 时钟发生器设计与实现指南