Description
用ATtiny85自制一个BCD手表
栏目:行业资讯 发布时间:2024-07-16
 【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】    老朋友应该知道,我们之前推荐过很多手表相关的项目(文末有合集),大家反响也还不错。  这周我们再来推荐一个BCD手表项目。      BCD的全称是Binary-Coded Decimal,用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。  由于我们生活中的手表大都是十进

  【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】

  

  老朋友应该知道,我们之前推荐过很多手表相关的项目(文末有合集),大家反响也还不错。

  这周我们再来推荐一个BCD手表项目。

  

  

  BCD的全称是Binary-Coded Decimal,用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。

  由于我们生活中的手表大都是十进制的形式的,二进制的这种独特的时间表示方式普通人比较难以理解,可能需要一些时间来反应转换,所以显得更“极客”一点。

  面板上有一个按键,当我们按下这个按键后,手表会以一秒钟的延迟显示小时和分钟,如图所示:

  

  当你长按按钮时,手表进入设置模式,首先,小时指示灯将闪烁,表示它处于小时设置模式,可以通过按下按钮增加数值。

  当你再次长按按钮时,它将进入分钟设置模式,分钟指示灯将开始闪烁。按下按钮可以增加分钟数。

  如果要从设置模式中出来,再次长按按钮,在长按之后,它将正常显示时间。

  

  首先,在kicad软件中设计原理图,使用ATtiny85作为我们的控制器。

  ATtiny85的引脚不多,所以这边使用了74HC595移位电阻,它增加了LED的引脚。这边我们添加了一个按钮来显示时间和设置时间。充电方面,我们使用了一个TP4056电路,它可以处理锂电池的充电问题。

  做完原理图后,把它放在PCB上,可以看到PCB是圆形的,上面有两个槽,这个槽是用来插入我们手表的皮带的。

  

  Kicad有一个PCB的3D浏览器,所以我们可以验证我们的PCB会是什么样子,所有的元件和通孔都放在正确的位置。我们可以导出这个stl文件,以便在3D建模中进一步使用。

  

  所有的PCB文件都是开源的,可以在GitHub页面下载。

  Github链接:

  可以在网上订购PCB,然后上传的gerber文件,同样可以在GitHub仓库页面获取。

  

  

  首先,我们焊接LED和电阻。为了焊接LED,先焊接LED的一条“腿”,然后再焊接LED的另一条“腿”,这个方法适用于所有SMD元件。

  焊接完LED后,接着焊接ATtiny85。首先,先焊接ATtiny85的一条“腿”用来固定,然后焊接了其他7的针脚。表盘上的按键也是这样焊接上去的。

  

  对于充电电路,这边使用了TP4056,这是一个充电集成电路,它可以处理锂电池和锂离子电池的恒流充电。

  在这里,我们做了魔改,把TP4056集成电路从模块上拆下来,还有额外的元件,像渐变电阻和LED。可以稍微节省点购买新IC的费用。

  

  然后我们把TP4056电路焊接在PCB上,这里还使用了一个LDO,把电池电压调节到3.3v,驱动ATtiny85和移位电阻。

  

  在这里犯了一个错误,没有检查集成电路的焊盘,并且使用了错误的移位电阻的脚印。

  这里使用的是74HC595移位电阻。

  所以我决定把通孔移位电阻的脚分开来进行焊接。这对我来说是可行的,不过还是想在下一个版本中,改变一些来减少尺寸。

  

  

  我们先在PCB上焊好了type - C的接口,会让焊接更加容易。

  用超级胶水来固定type - C的位置,这样它就能牢固地固定在位置上。

  

  这是连接BCD手表PCB和Arduino作为ISP的引脚,如果你不知道Arduino作为ISP,可以看这个视频:

  要设置熔断位,首先从Github页面下载文件夹:

  Github:

  

  打开文件夹,进入文件夹,在文件夹中点击顶部栏,如图所示,输入,打开命令终端。

  

  打开文件并复制第一行,将其粘贴到命令终端。如果你看到fuse OK,说明成功了。

  复制文件中的第二行,粘贴到命令终端,你将再次看到fuse ok,这意味着你的控制器现在被设置为。

  在同一个文件夹中,你会发现文件,复制文件中给出的链接或从下面复制。

  

  打开Arduino IDE,进入文件,然后进入“首选项”,将链接粘贴到额外的板卡管理器部分。用逗号", "分隔其他链接。

  

  进入工具——开发板管理器,安装ATtiny85

  

  打开代码,进入工具,在这里选择板和处理器为ATtiny85。时钟应该是1Mhz,连接到Arduino的COM端口为ISP。

  转到代码页面,点击使用编程器上传。

  

  

  在上传代码后,手表将显示错误数值,断开ISP,将其连接到外部电源,并按下按钮,然后一切正常。

  

  这边用一个500mAh的电池连接到LDO的输入电容上,如图所示。

  

  红灯表示正在充电。

  

  在验证完毕之后,我们可以把电池用胶水固定住,虽然这暂时不是一个稳定的解决方案,但是有效的,以后可以考虑用环氧树脂固定。

  

  

  可以自己找一对表带来装一下!

  原文链接:https://www.instructables.com/BCD-Watch-Binary-to-Decimal/

  原项目作者: vishalsoniindia

  译文首发:DF创客社区开源项目,转载请务必注明项目出处与原作者信息

  硬件军火库

  点击了解详情