MAKER: indoorgeek/译:趣无尽
用数码管显示时间可以说非常普遍。我们也介绍过用机械装置构建并显示数字的项目,例如这款「纯机械装置模拟数字时钟」。
https://make.quwj.com/project/367
上面这款稍显复杂,趣友们也表示颇为费劲。那么有没有「效率更高」的机械装置来显示数字的呢?
下面我们介绍一款电磁驱动,由 3D 打印模块构建的「数码管」。可以通过多位级联来显示一组数字,效果如何呢?请看下面的视频。
组件清单
Arduino 开发板 × 1
DRV8837 H-桥驱动 IC × 7
74HC04 IC × 2
74HC595 IC × 1
6mm x 1.5mm 钕磁铁 × 7
7-pin 公头 × 1
7-pin 母头 × 1
5-pin 直角公头 × 1
5-pin 直角母头 × 1
M3 螺丝 × 4
PCB 设计
PCB 被设计成了两个部分,其中一部分只有线圈,另一部分则用来承载线圈之外的电子元件。
将不带线圈的 PCB 通过插头由背面固定到主控 PCB 之上。看起来还是很不错的。
PCB 的生产文件 Gerber 已经传到项目文件库中,可以下载之后在嘉立创等 PCB 服务商处打样。
https://make.quwj.com/project/384
3D 打印部件
在本项目的文件库中下载 3D 打印部件的 STL 文件:
https://make.quwj.com/project/384
使用两种颜色的材料来打印它们。这中间需要终止打印过程,并更换第二种颜色的打印材料。因此需要注意打印的设置。
组装成品
收到 PCB 之后,将贴片元件焊接到 PCB 上。打磨 3D 打印的数字段块,组装面板时时确保每个段块都能前后灵活移动而不会卡住。
每一段块都有一个槽位,用于安装钕磁铁。安装磁铁时,需要检查磁极。确保前面的线圈所产生的磁极与面对线圈的磁铁的磁极相同。简而言之,让线圈可以将段块排斥顶出。用强力胶将磁铁固定到位。
最后,将两个部分组装在一起。
编程
本项目的数码管,采用了 74HC595 移位寄存器 来实现状态控制。
在 Arduino 上,有一个叫 ShiftDisplay 的库(由 Miguel Pynto 开发),可以很好的驾驭这种硬件实现。你可以在库的 GitHub 中查看具体的代码实现。
https://github.com/MiguelPynto/ShiftDisplay
完成
上电之前,请确保电路不存在短路。使用独立的 5V 电源供电,通电之后就可以看到在磁铁和线圈相互作用之下,数字清晰的显示在面板上,就如同常规的七段数码管一样。
每一位数字的驱动所需的电流约为 650mA,由此可以根据自己需要显示的数字位数来选择合适的电源。希望你喜欢这个项目。
项目所用的代码在本项目文件库中可以下载:
https://make.quwj.com/project/384