11982| 7
|
用ATtiny85自制一个BCD手表 |
老朋友应该知道,我们之前推荐过很多手表相关的项目(文末有合集),大家反响也还不错。 这周我们再来推荐一个BCD手表项目。 什么是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步:表带 可以自己找一对表带来装一下! 原文链接:https://www.instructables.com/BCD-Watch-Binary-to-Decimal/ 原项目作者: vishalsoniindia 译文首发:DF创客社区 开源项目,转载请务必注明项目出处与原作者信息 手表系列回顾 ▼ 开源DIY墨水屏手表!外观可盐可甜,无线蓝牙计步闹钟一应俱全! ▼ 用ESP32做一个带有200个LED的物联网手表 ▼ IO Watch: Arduino UNO 制造的可编程手表 ▼ DIY一款既实用又时尚的二进制手表 ▼ 复刻卡西欧F-91W!不过,我比较大。 ▼ “新年又给自己做了一块新手表!” ▼ 电子墨水屏手表——一个至今还没有完工的项目 ▼ 致敬稚晖君?自制一款太空人主题的透明手表! |
7.08 MB, 下载次数: 2806
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed