爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
玩电子有N年了,但是一直没有做一个最基本的东西,就是时钟.
之前安鑫家活动,12块包邮一堆8x8的LED点阵,想来想去还是用上吧,于是就有了这个钟.
先画PCB. 因为之前看到有一个网友,用一颗8X8点阵做了个钟,一触摸就滚动显示,感觉挺有意思.于是最开始的想法就是仿一个.于是有了第一版PCB. 主控用的stm8s003
当时想的是一颗stm8带两个75HC595,然后一个行驱一个列驱,做成一个跟8x8点阵大小一样的小方块,整体无边框.
实际做板时又想595是可以级联的,既然可以驱动一块,那就应该可以驱动很多块,于是又想每个小方块都做成一样,然后支持级联. 一颗stm8,想接几个模块就接几个模块,那不是更美.
于是就画了第一版pcb.但是当时的行列驱动被我搞混了,写程序时才发现这个问题,导致正常应该按列刷新的方式变成了按行刷新, 程序上面还特意写了一段行列转换的代码.
第一版pcb最大的问题还不是行列反了的问题,而是当初为了模拟网友那个触摸后滚动显示时间然后自动熄灭(当时网友用的是Arduino),于是加上了一个单键开关机电路,跟触摸芯片配合,没想到搞砸了,这部分电路不能正常工作,能开机不能关机,2333333.失败.
这样的pcb,用着不甘心呀.于是咬咬牙,又撸了第二版. 基本思路跟第一版是一样的.但是去掉了一键开关机电路,同样支持级联,最主要的,还是改了行列驱动方式.
上层有各种主要元件,包括stm8,触摸芯片,两颗按键,锂电池充电等等. 背面是两颗74hc595和8颗限流电阻.
看了下问题不大,做了4拼. pcb上面的级联孔本身就是有线连接着的,也就是说,只要不掰开,自然就是4级级联,焊上元件就能工作.如果不需要4片,就切掉一部分.
当然,如果想要更多,理论上直接另一片放在一起,然后并联好级联脚就可以4级以上级联了.
然后是时钟,用的DS3231,虽然贵,但是这玩意真tm准,我这边走一个月大概也就2~3秒的误差.当然,这跟你的使用环境有关,我的数据可能并不适用在别的地方.
时钟做成模块,一方面是这玩意可以用在别的东西上面,另一方面,那个pcb上面已经没有空间放ds3231了.这玩意太大个儿了.
其实要不是考虑到多块级联,pcb上面还有大把的空间可用.就是为了走那个级联的线,浪费了大把的pcb空间.但是也没办法,为了兼容性就这样设计了.
好,去做PCB. pcb是在JP做的.原因有两个,一是个人用户有一次免费,虽然现在没有了.另一方面是他们家支持打样10x10cm以上,就是总体面积不超过100平方cm就行,可以做成长条状的.
第一次打样我就傻到做的2拼,结果2拼根本不够完整显示时间,只能滚动显示,16列不长不短,难受.想完整显示时间,至少需要3块8x8点阵,但是3块8x8点阵已经大于10cm长度,所以只能在JP家做.最后就做了简单的4拼.
另外说下,JP家虽然现在食言不给每月免费做板了,但是他们家出的pcb质量还是相当不错的,至少比同期JLC的活动款PCB质量要好,特别是丝印,很清晰.同样大小的字符,JLC的丝印几乎看不清了.所以这里给JP好评下.
做回来的样子: 背面
正面: 顺便跟8x8点阵合个影
焊接就不细说了.这个是焊好的时钟模块:
这个是焊好的pcb,元件面,8x8点阵面,最下面是片空板.
我最满意的是立起来看,当时特意设计的把595完全覆盖在8x8点阵下面,这样可以节约空间,整体不算突出来的按键,就比8x8点阵本身厚辣么一点点.
驱动程序写了N久,别问我为什么,懒能解释一切. PCB上面的那个导线蝴蝶结,是触摸开关的感应天线.
没有柔光膜看起来效果非常差,但是我也没有什么合适的东西做柔光膜,最后就剪了块A4纸用胶水粘在了上面.我照片拍得比较烂,实际看起来效果还行.
功能都调试好了,基本处于可用状态了,我要给它做个支架
找了半天没找到合适的材料,有也不起3D打印机,本来想找段铜丝,最后连合适粗细的硬铜丝都没找到,只找到了一颗水泥电阻.对付用吧.
初步想法是,这颗水泥电阻的引脚比较粗,直接焊在两个GND孔上面,这样就把整个模块支撑起来,看起来有一种浮空的感觉.
后来一看,电阻是51K的,这么大的电阻,就算常接在5V上面我也不在意了,毕竟8x8点阵常亮也有个几十mA,不差这一点点,干脆把51K水泥电阻的两个脚分别接在了VCC和GND上面了,这样连供电线都不需要接到模块上面了.
再随便找根料掉的usb线,扒出线芯,取其中两根, 一端接在水泥电阻的两个引脚上面,另一边焊个Micro USB的母座
再找根棍子架起来,就这样了.用手碰一下还能摇来摇去.就是热熔胶粘的地方实在难看.
简单说下功能.
整个模块是有3个按键的,除了背面两个实体按键,在模块的上边框还有一颗触摸按键,用手触碰那个位置就会依次滚动显示日期和温度. 长按触摸会进行设置状态.另外两个实体按键是+/-键,用来设置时间和日期.
在正常状态下按两颗实体键,一颗可以切换显示字体(目前里面用了三种字体,虽然都不太好看),长按保存字体,
另一颗按键计划是按一下切换翻页效果,但是现在并没有做翻页效果,就是分钟变化时用一段动画代替现在的直接变化.但是现在还没做这个功能,按一下也显示日期,至于什么时候能做出来,呵呵呵呵,看心情吧.
pcb上面还焊了一颗光敏电阻,支持适应环境光强,完全漆黑的环境下看着也不刺眼, 另一个ADC口还支持一颗热敏电阻,可以用来测量温度.
另外就是理论上还支持焊接一颗红外接收管,从而支持红外遥控.但是你们知道的,我懒. 这个引脚留的是rx脚,本身还有ADC功能,焊透传的蓝牙模块也是可以的.所以可玩性比较高.我暂时是没时间玩了.就先这样用吧.
最后上个原理图,给有需要的人参考下.
STM8 8x8LED.PDF
(449.89 KB, 下载次数: 1)
PCB文件我就不上了,因为现在无论是jp还是jlc都查得比较严,已经打样过的pcb不给再次打样,所以你们会画的自己画一个,不会画的因为我打样过了,你们估计也打不成了.
程序也一样 ,我写得比较简单,有爱好有兴趣的自己写吧.单片机就是用来玩出更多花样的,大家都可以自由发挥.
|