首页/文章/ 详情

帅啊!自制一个BCD手表

1年前浏览287

前两天看到朋友分享了一个开源小项目,觉得很酷,今天借花献佛,给大家分享下。


什么是BCD?

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

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

第1步:功能介绍

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

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

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

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

第2步:PCB设计

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

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

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

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

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

Github链接:https://github.com/vishalsoniindia/BCD-Watch

第3步:订购PCB

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

第4步:焊接PCB的正面

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

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

第5步:充电和LDO

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

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

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

第6步:移位电阻(74HC595)

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

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

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


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

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

第7步:熔断设置


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

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

Github链接https://github.com/vishalsoniindia/BCD-Watch

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

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

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

第8步:上传代码

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

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


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

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

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

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


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

第9步:连接电池

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

红灯表示正在充电。

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

第10步:表带


感兴趣的小伙伴,可以自己找一对表带来装一下!
作者:vishalsoniindia
来源:芯片之家,DF创客社区
项目地址:www.instructables.com/BCD-Watch-Binary-to-Decimal

声明:


 
本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。  

—— The End ——

来源:8号线攻城狮
电源电路芯片焊接控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-07
最近编辑:1年前
8号线攻城狮
本科 干一行,爱一行
获赞 59粉丝 88文章 1057课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈