×

多路数码管时钟开源分享

消耗积分:0 | 格式:zip | 大小:0.19 MB | 2022-11-03

淡淡的爱

分享资料个

描述

介绍

数码管最近很受电子爱好者的欢迎。它们是古董新奇!我是我们当中为数不多的能够记住数码管在 1960 年代和 70 年代初是最先进的显示器的人之一。随着 LED 显示屏的出现,它们几乎立即消失了!

我在这里看到的大多数 Nixie 项目都很昂贵,并且使用预组装的 Nixie 电子管显示器。我在这个项目中的目标是让它变得便宜并从头开始构建它,这样我才能真正了解一切是如何运作的!我希望它包括秒。我希望它包括闪烁的冒号。我希望它可以配置为 12 或 24 小时制。我希望成品看起来不错。我想以大约 100 美元的价格完成所有这些工作。所以这就是我最终的结果:

 

我非常接近我 100 美元的成本目标。我在零件清单的评论中列出了价格。他们总共110美元!

我们在这个项目中使用 MKR WiFi 1010,因为它具有内置 WiFi 和内置 RTC(实时时钟)。它提供了一个自设置时钟,可以从互联网上获取时间。我们将在软件中更多地讨论这一点。

设计与施工

我们需要从明显的警告开始,即数码管在 170 伏特下运行,因此在使用这些电路时需要小心,因为它们会给您带来严重的冲击!

为 6 个数码管供电的最简单方法是给它们各自的 BCD 转十进制阴极驱动器(SN74141 或俄罗斯等效的 K155ID1)。这样 170 伏阳极可以连续供电,我们不需要打开和关闭高压。但是,这涉及大量布线,每个 SN74141 都需要 4 个 Arduino 引脚作为输入。MKR WiFi 1010 没有足够的引脚,因此需要移位寄存器或其他东西来控制所有 SN74141。

为了让我的时钟相对简单,我决定通过单个 SN74141 复用所有的数码管。它简化了接线,因为所有数码管的阴极引脚都可以连接在一起,即所有 6 个数码管引脚 1 都连接在一起并连接到 SN74141 的#1 输出引脚。所需的 Arduino 引脚大大减少。我们需要 4 个作为 SN74141 的输入和 6 个来选择合适的数码管。(实际上,还需要一个来控制闪烁的冒号。)

然而,我们为这种简单性付出了一些复杂的代价。在软件中,我们需要一个定时中断程序来处理数码管的不断刷新——稍后会详细介绍。在硬件方面,我们需要能够通过打开和关闭高压来打开和关闭数码管。

poYBAGNiSkKAe_T4AAA_OK-U7eo320.jpg
 

上面的电路是我用来打开和关闭 Nixies 的电路。两个晶体管和三个电阻构成每个 Nixie 的高压驱动器。通过这种安排,我们可以直接从我们的 Arduino 控制进入 Nixie 阳极的 170 伏电压。Arduino 本身从来没有看到任何高电压,因为 Arduino 引脚基本上通过 NPN 晶体管的基极-发射极结接地(即基极永远不会超过结的 0.7 伏正向压降高于地面)。

如果您熟悉数码管,您可能想知道为什么我使用低值 1200 欧姆电阻连接到数码管的阳极。当 Nixie 开启时,其电压降约为 140 伏。因此,该电阻器上的电压约为 30 伏,电流限制为 25 毫安,远高于推荐的 2 毫安。但由于我们正在多路复用这些 Nixie,它们的占空比仅为 10% 左右,因此我决定采用更高的电流限制以最大限度地提高亮度。

诚然,我们需要六个这样的高压驱动器,所以它确实增加了一些复杂性,但它仍然比我们需要的没有多路复用的硬件安排更简单。

我还希望我的时钟在小时和分钟之间以及分钟和秒之间包括闪烁的冒号。我通过添加通过第七个高压驱动器控制的 4 个霓虹灯来实现这一点。

poYBAGNiSkSACGo1AAEmo6nckzk467.jpg
高压板包含所有 7 个高压驱动器。
 

在这个设计中我并不为之疯狂的一件事是需要 3 种不同的电源。当然,我们需要两个——一个用于处理器,一个用于 170 伏的 Nixie 阳极。MKR WiFi 1010 规定了 5 伏的电源要求,但板载调节可以处理更高的电压。用于 170 伏的 DC-DC 升压电源规定最小输入电压为 8 伏。

起初我计划使用 9 伏电源作为 Arduino 和升压转换器的输入,但升压在 9 伏电压下不起作用。我决定使用 15 伏电压,但这需要第二个 DC-DC 降压电源来为 Arduino 供电。所以我最终得到了三个用品!

两个 DC-DC 转换器都可通过板载电位器调整宽范围的电压输出。您需要在它们上面放一个仪表并将它们设置为适当的电压 - Arduino 为 5 伏,数码管为 170 伏。

pYYBAGNiSkeATf-BAADzKhwdYrw439.jpg
一个 DC-DC 降压 (5 v)、一个 DC-DC 升压 (170 v) 和 15 伏墙砖
 

在我把所有东西都塞进盒子里并加载我的时钟软件之前,我决定我需要检查各种硬件,以确保我的数码管工作正常,并且我可以在 6 个数码管和带有高压的霓虹灯中进行选择司机。所以我写了一个小测试程序,我已经包含在软件中。下面是测试的样子:

 

我以为我为我的时钟制作了足够大的 3D 打印外壳,但正如您在下面的照片中看到的那样,里面非常拥挤!即使我将 Nixies 多路复用并将大多数引线连接在一起,它仍然产生了真正的“老鼠窝”电线。如果我要重新设计这个时钟,我会在 Nixie 之间进行点对点接线,并且主要避免这种乱七八糟的电线。

poYBAGNiSkmACgRqAAFLE_SH3F8676.jpg
 

外壳是 3D 打印的 - 我已将 .stl 文件包含在可用下载中。它们包括面部、身体底部和身体顶部。

软件

首先,时钟软件本身与我之前的教程中描述的相同:自设置超精确时钟在本教程中,我们将添加数码管作为显示器。MKR WiFi 1010 具有内置 WiFi 和内置 RTC(实时时钟)。与 MKR 1010 一起使用的 WiFiNina 库具有获取 NTP(网络时间协议)时间的能力。并且 RTCZero 库可以使用 NTP 时间来设置内置的 RTC。结果是一个时钟可以自行设置并且在几毫秒内精确到只使用 WiFi 和处理器本身!

要使用我的软件,您需要获取 WiFiNina 和 RTCZero 库——它们都可以直接从 Arduino Library Manager 安装。您还需要使用您的 WiFi 凭据、与 GMT 的时区偏移量来配置用户设置,并指定您是要显示 12 小时制还是 24 小时制。软件开机自动获取时间,每小时从网上重新获取一次,超准!

我们的主循环从 RTC 获取时间并更正时区和首选时间格式(24 或 12 小时)。它使时间保持最新,并准备以小时、分钟和秒显示。它还将小时、分钟和秒解析为单独的数字,这些数字将显示在我们的 6 个数码管中的每一个上。它打开冒号大约每秒 1/2 的时间,因此它们每秒闪烁一次。冒号亮度使用 PWM 进行控制,只需设置为大致匹配 Nixies 的亮度。

每 16 毫秒调用一次定时中断。更新 Nixies。它通过将其各自的数字加载到 SN74141 的 BCD 输入中并打开该 Nixie 的高压 2.5 毫秒来更新每个 Nixie。大约需要 15 毫秒。更新所有 6 个 Nixies,因此微控制器大部分时间都在刷新。每个 Nixie 开启 2.5 毫秒。每 16 毫秒,因此其占空比为 14%。它们不像连续打开时那样明亮,但它们足够明亮,具有良好的可读性。我们的定时中断每 16 毫秒进行一次,我们的刷新率为 63 Hz - 绝对快到让我们看到 Nixies 一直都在工作!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !