使用 Arduino 制作简易辉光管时钟——分步指南
项目简介
利用 Arduino UNO、光耦隔离芯片 TLP627 驱动 6 只辉光管(IN-12 等),无需难购的专用驱动芯片。通过矩阵扫描方式,仅占用 16 个 Arduino 引脚即可控制 60 个数码管段。DS3231 实时时钟模块通过 I2C 提供掉电走时,配合升压模块(12V→390V)供阳极高压。
材料清单
| 序号 | 元件 | 备注/购买链接 |
|---|---|---|
| 1 | Arduino UNO | Amazon |
| 2 | 辉光管 ×6 | Amazon(IN-12 或同类) |
| 3 | 光耦 TLP627 | 6 只,对应 6 位数码管 |
| 4 | DC-DC 升压模块 12V→390V | Amazon |
| 5 | 面包板 & 杜邦线 | Amazon |
| 6 | DS3231 RTC 模块 | Amazon,带纽扣电池 |
电子元件亦可在 UTSource 采购。
步骤 1:电路设计
采用矩阵扫描:10 根列线控制 0-9 共阴极,6 根行线控制 6 位数码管共阳极(通过光耦隔离高压)。每次点亮一位,高频切换(约 2ms/位)利用视觉暂留效果呈现完整时间。DS3231 通过 I2C (A4/A5) 与 Arduino 通信。
步骤 2:Arduino 代码
// YouTube: engineer2you
#include <Wire.h>
#include "DS3231.h"
RTClib RTC;
DS3231 Clock;
int hour, minute, second;
// 列引脚(数字 0-9)
const int nixie[10] = {2,3,4,5,6,7,8,9,10,11};
// 行引脚(6 位数码管)
const int row[6] = {0,1,14,15,16,17}; // D0,D1,A0-A3
const int time_on = 2; // 每位点亮 2ms
void setup() {
for(int i=0;i<10;i++) pinMode(nixie[i], OUTPUT);
for(int i=0;i<6;i++) pinMode(row[i], OUTPUT);
// 避免使用 Serial,占用 D0/D1 影响行驱动
Wire.begin();
}
void loop() {
DateTime now = RTC.now();
hour = now.hour(); minute = now.minute(); second = now.second();
// 秒:个位→十位
showDigit(0, second%10); delay(time_on);
showDigit(1, second/10); delay(time_on);
// 分:个位→十位
showDigit(2, minute%10); delay(time_on);
showDigit(3, minute/10); delay(time_on);
// 时:个位→十位
showDigit(4, hour%10); delay(time_on);
showDigit(5, hour/10); delay(time_on);
}
void showDigit(int rowIdx, int num) {
offAll();
digitalWrite(row[rowIdx], HIGH);
digitalWrite(nixie[num], HIGH);
}
void offAll() {
for(int i=0;i<6;i++) digitalWrite(row[i], LOW);
for(int i=0;i<10;i++) digitalWrite(nixie[i], LOW);
delayMicroseconds(400); // 防止鬼影
}
步骤 3:电路搭建
首次上电即成功点亮,后续计划制作 MDF 外壳作为成品摆件。
代码下载
完整代码见 GitHub 或直接复制上方代码至 Arduino IDE 上传。
制造工艺
- Arduino POV 时钟:自制视觉暂留 LED 显示器
- 复古 Numitron 管时钟:Arduino Nano 驱动,低温可靠省电
- DIY Arduino单词时钟 – 极简优雅的实时文字显示
- 自制 Arduino 伊斯兰祷告时间实时时钟
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- Arduino Due 驱动 3.2″ TFT 实现温度监测与实时时钟
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- 自制尼克西管时钟:Arduino 驱动,MDF 木制外壳
- 用 Arduino Pro Mini 与 DS1302 RTC 打造精准七段数码管时钟
- 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟
- 使用 E3.series 简化电气线束设计