亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 实时时钟 LED 时钟:六位数码管精准计时制作指南

元器件清单

元器件规格/型号数量用途
Arduino UNOR31主控
RTC 模块DS1307 + CR2032 电池座1掉电走时,I2C 接口
4 位共阴数码管6 位(或 2 块 4 位)6时:分:秒 显示
NPN 三极管S8050 / 2N222210位选驱动
PNP 三极管S8550 / 2N290712段选驱动(共阳极)
限流电阻120 Ω (段) / 1 kΩ (基极)各 15保护 LED 与三极管
7805 稳压器TO-2201外部 12V 转 5V
16 MHz 晶振 + 22pF 电容各 1裸片时钟源(可选)
10 μF 电解电容1电源滤波
拨码/轻触开关4 枚4时/分/12-24H/设定
12V/5A 电源适配器1整机供电

电路架构

RTC 模块接线

六位数码管动态扫描驱动

采用 共阳极 数码管(代码默认),段选由 PNP 三极管上拉,位选由 NPN 三极管下拉。Arduino 依次选通每一位,写入段码,利用视觉暂留实现全亮无闪烁。若使用共阴极,需修改 SEGMENT_ON/OFF 宏定义并调整三极管极性。

Arduino 实时时钟 LED 时钟:六位数码管精准计时制作指南
Arduino 实时时钟 LED 时钟:六位数码管精准计时制作指南

按键功能定义

按键引脚功能
SW0A0长按进入设置模式
SW1A2设置模式下调整分钟
SW2A1设置模式下调整小时
SWTA3切换 12/24 小时制

核心代码逻辑

库依赖

#include <Wire.h>
#include <RTClib.h>  // Adafruit RTClib

关键数据结构

// 段码引脚映射
int seg[8] = {0,1,2,4,7,8,12,13}; // A,B,C,D,E,F,G,DP
// 位选引脚
int digit[6] = {11,10,9,6,5,3};   // D1~D6
// RTC 对象
RTC_DS1307 RTC;

主循环流程

  1. 读取 RTC 时间 DateTime now = RTC.now()
  2. 根据 12/24H 标志格式化为 HHMMSS 整数
  3. 三组 for(i=100; i>0; i--) 循环分别调用 displayNumber01~06,实现 6 位轮流扫描,每位亮度 DISPLAY_BRIGHTNESS 25 μs
  4. 检测按键:长按 SW0 进入设置子程序 set_time()

设置时间子程序 set_time()

段码显示函数 lightNumber()

// 共阳极:HIGH 点亮,LOW 熄灭
// 共阴极:宏定义取反即可
switch(num) {
  case 0: A,B,C,D,E,F=ON; G=OFF; break;
  case 1: B,C=ON; 其余 OFF; break;
  ...
  case 10: 全 OFF; break; // 消隐
}

电源设计

外部 12V → 7805 → 5V 供电 Arduino 与数码管驱动电路。7805 散热片建议加装,峰值电流约 1.2A(6 位全亮)。数码管段选电流约 5mA/段,总电流 < 1A,7805 余量充足。

制作实拍与效果

Arduino 实时时钟 LED 时钟:六位数码管精准计时制作指南
Arduino 实时时钟 LED 时钟:六位数码管精准计时制作指南
Arduino 实时时钟 LED 时钟:六位数码管精准计时制作指南
Arduino 实时时钟 LED 时钟:六位数码管精准计时制作指南

常见问题与优化

  1. 显示闪烁:扫描频率过低 → 减小 delayMicroseconds 或用定时器中断
  2. 亮度不均:位选驱动能力不足 → 改用 ULN2803 / UDN2981 专用驱动 IC
  3. RTC 走时不准:晶振负载电容不匹配 → 换 12.5pF 负载晶振或软件校准
  4. 按键抖动:已在代码中加 delay(300) 消抖,必要时加硬件 RC

代码获取

完整代码已内嵌于上方代码块,可直接复制到 Arduino IDE 编译上传。建议先单独测试 RTC 读写与数码管扫描,再整合。

制造工艺

  1. Arduino POV 时钟:自制视觉暂留 LED 显示器
  2. DIY Arduino单词时钟 – 极简优雅的实时文字显示
  3. 用 Arduino Nano 和 Nokia 5110 LCD 自制 20kHz 示波器:简易 DIY 指南
  4. 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
  5. 智能窗帘:基于Arduino与太阳能的自动光控系统
  6. 意大利语单词时钟:Arduino Nano + NeoPixel 144 灯珠 + LCD + RTC 打造
  7. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  8. 从零构建智能 Arduino 四足机器人:完整指南
  9. 用 Arduino Pro Mini 与 DS1302 RTC 打造精准七段数码管时钟
  10. 基于Arduino MKR Fox 1200构建可靠Sigfox千瓦时电表
  11. Arduino 8×8 LED 矩阵翻页时钟 - DIY 实时时钟项目
  12. 为Arduino构建隔离模拟输入电路