情人节礼物:DIY 恋爱天数计数器
项目简介
这是一个充满心意的电子 DIY 项目,适合作为情人节或纪念日礼物。该装置使用 Arduino、DS3231 实时时钟模块(RTC)和 4 位 7 段数码管,实时显示从恋爱开始那一天算起已经过去了多少天。作者在 2017 年 12 月 10 日(英国日期格式)开始恋爱,一年后想用所学电子知识制作一份独特的纪念礼物,将计数器装入相框,配上合影,既实用又浪漫。
所需材料
- Arduino UNO ×1
- DS3231 RTC 实时时钟模块 ×1
- KYX-5461AS 4 位 7 段共阴极数码管 ×1
- 面包板 ×1
- 跳线若干
- 1kΩ 电阻 ×1
硬件连接
参考原文提供的 Circuito.io 原理图链接,按以下步骤接线:
- 在 Circuito.io 中添加组件:RTC(DS3231)、7 段数码管(选择通用型号,非 SparkFun)。
- 根据生成的接线图,使用跳线将各引脚连接至 Arduino。
- 数码管段选引脚接 Arduino D2~D5、D11~D13、D6;位选引脚接 D7~D10。
- RTC 模块通过 I2C 接口连接(A4/SDA、A5/SCL),供电接 5V 和 GND。
软件准备
- 安装 Arduino IDE。
- 下载并安装两个库:
RTClib和SevSeg(通过“草图 → 包含库 → 添加 .ZIP 库”导入)。 - 打开提供的
DaysCounter.ino代码。 - 修改第 7 行
DateTime dtBegin (2017, 12, 9, 0, 0, 0);中的前三个数字为你们的恋爱纪念日(年、月、日)。注意:代码中的日比实际日期少 1,因为 RTC 计算逻辑关系。 - 编译上传,数码管将显示已在一起的天数。
核心代码逻辑
#include <RTClib.h>
#include <SevSeg.h>
SevSeg sevseg;
RTC_DS3231 rtc;
DateTime dtBegin(2017, 12, 9, 0, 0, 0); // 修改为你的纪念日
TimeSpan tsPassed;
void setup() {
Serial.begin(9600);
if (!rtc.begin()) { while(1); } // RTC 未检测到则停机
// 首次运行取消注释下行以校准 RTC 时间,上传后再注释掉重新上传
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
byte numDigits = 4;
byte digitPins[] = {7, 8, 9, 10};
byte segmentPins[] = {2, 3, 4, 5, 11, 12, 13, 6};
sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins);
sevseg.setBrightness(100);
}
void loop() {
sevseg.refreshDisplay();
DateTime now = rtc.now();
tsPassed = now - dtBegin;
static uint16_t prevDays = 0;
if (tsPassed.days() != prevDays) {
prevDays = tsPassed.days();
sevseg.setNumber(prevDays, 0); // 无前导零
}
}
进阶建议
- 将电路焊接在万用板上,装入相框,背面预留 USB 供电口。
- 为 RTC 装上纽扣电池(CR2032),断电后仍能走时。
- 外壳可 3D 打印,设计专属造型。
- 代码已在循环中每 5 秒通过串口输出当前时间与已过天数,便于调试。
结语
这个项目难度适中,代码已添加详细注释,适合初学者练手。成品不仅是一件电子作品,更承载着专属的浪漫回忆。快动手为 TA 制作一个独一无二的“恋爱计时器”吧!
制造工艺
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- 智能停车计数系统:Arduino + Processing + PHP 实时车位追踪上云
- Arduino 高速转速计 - 单次检测算法实测 6.5MHz 级响应,红外 + 红激光方案
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- Arduino + TEA5767 打造 FM 收音机:Nokia 5110 显频谱/信号强度/立体声
- Arduino 101 计步器:集成 DHT11 温湿度 + LCD 显示步数/距离/卡路里
- Arduino RGB 颜色混合器 – 分步制作教程