创客制作:让时间漂浮显示?这单片机时钟也太牛了吧!

selina的头像
selina 发布于:周三, 07/20/2016 - 18:04 ,关键词:

笔者利用51单片机制作了一个LED旋转屏,并利用该旋转屏上制作出炫耀独特的数字钟,在把制作过程分享之前,先贴一张效果图。


效果图——左上角是静止图


看完图片之后大家惊奇的发现,上面显示的字居然是浮在空中的!这到底是怎么回事?其实道理很简单:LED旋转屏只采用一排LED,令其高速旋转,利用视觉残留效应,形成高分辨率的点阵屏,可以显示字符、汉字,甚至图案,而且图案看起来还有悬浮于空中的透明效果,非常炫目。下面跟着笔者一起来制作把!

下面给出一张元器件清单供参考。


开始硬件制作

1、制作电路

由于电路板高速旋转,除了要做好平衡,还要尽快地缩小电路板的体积和重量,这样装置比较小,也容易进行高速旋转。

制作电路时,除了少数插件外,全部采用贴片工艺进行制作,为了减小电路板体积,笔者使用双面PCB进行布线,

下面两张是笔者绘制的PCB图,供参考。


TOP层PCB


BOTTOM层PCB


PCB正面放置AT89S52、12个LED等,背面主要放置晶振、升压电路,整个电路板尺寸为64 mm ×30mm,读者可以根据这个布局自行画PCB,建议画PCB前先确定整机的装配结构,可以参考图9。手工制作双面PCB需要一定的经验,将Top Layer镜像打印,然后和Bottom Layer对齐,把裁好尺寸、打磨好的双面覆铜板放在两层纸中间,确保对齐后进行热转印。

2、装配结构

笔者确定圆柱型旋转屏的整机结构大致如下图所示。


装配结构图


找一个合适的电脑主机散热器的风扇,一般是12V、0.75A,也有0.15A的,这里最好选0.75A的大功率散热风扇,因为电机负荷比较大,小功率风扇可能带不动,然后把风扇的扇叶剪掉(舍不得剪也可以保留,耗电稍大而已),剩下转子和支架,然后按照图9的结构进行“叠罗汉”。找一块大小合适的硬木板,长度等于旋转屏直径,宽度等于电路板的宽度,按照图9把电路板固定在木板上面,至少用2根1cm长的自攻螺丝进行固定,否则高速旋转时电路板可能甩飞,安装时注意光电门的位置。

然后把木板用强力胶粘在电机上面,这个环节很重要,粘合强度一定要足够高,笔者用热熔胶大面积粘合,效果还可以,用AB胶也不错。

然后把电池座、平衡片固定在木板上面,安装电池座时,一定要连同电池放在里面,这样才能调节平衡,平衡片可以用覆铜板,这个环节最重要的是平衡,不断调节电池座的位置和平衡片,一定要调到最佳平衡状态,这需要耐心和运气。

挡光片的安装比较容易,不过位置要调好,恰好能把光电门的光“切断”,又不能碰到光电门。红外接收头本来是焊接在电路板上面的,笔者后来调试发现,接收头高速旋转会使接收到的信号误码率较高,于是把接收头移到旋转中心,问题有所改善。装配好的整机如图下图所示:



装配好的整机图


注入灵魂——编写软件

整机装配好后,上电调试,并写一个流水灯的程序并烧写到单片机,如果12个LED确实能“流水”,那恭喜你,硬件制作大体成功了!如果出现问题,检查升压电路是否输出3.3V和5.0V,检查单片机的复位引脚是不是低电平等。程序采用C51进行编写,不建议采用汇编,因为这个系统比较庞大,用C语言更容易开发。

软件编写的基本思想如流程图如下:


软件中要注意几个比较重要的函数的编写。一个是实现字符显示的函数,也是最重要的函数,编程上与点阵接近,不过相对容易一些。首先必须获得字库,如无字模软件,推荐一款LCD汉字取模软件,笔者使用感觉良好,下载地址:
http://dgdz.cic.tsinghua.edu.cn/dgdz/detail.jsp?seq=576&boardid=2601

另一个是红外遥控解码函数,红外遥控的解码,关键在于了解红外遥控信号的规律,笔者采用KD-29遥控器。

还有,笔者在旋转屏上实现了字符显示后,利用单片机内部定时器编写了一个数字钟,这样一来单片机任务有点多,即使使用了22.1184MHz的晶振,仍然感觉单片机速度不够,表现在显示字符时有抖动现象,这是因为中断函数内部指令稍多,导致延时函数延时不准引起的。

后来笔者用定时器来产生精密延时,效果好了一些,不过仍然有微微抖动,如果用AVR单片机,由于AVR单片机的速度比51单片机快10倍,这个问题就能得到很好地解决了,这也是笔者推荐使用Atmega8进行制作的原因。

这样的一个旋转屏也可以用来显示图案,但因为垂直分辨率不够多,显示普通小图标就可以了,笔者用它来显示静音符号,还有开闹钟的符号。显示图标时有一个小窍门,就是用文字来索引图标,在字库生成软件中,都可以自定义字模,我们把图案用某个用不到汉字来表示,显示的时候,只要显示这个汉字,它对应的图案就显示出来了,十分方便。软件问题智者见智,仁者见仁,读者也可以自行设计软件系统,笔者把源代码全部公开,可以到本刊网站www.radio.com.cn上下载,供读者参考。

结语

这个LED旋转屏的DIY就交流到这里,硬件的制作需要不断提高动手能力才能做得更精致,软件的编写要经历无数调试过程才能达到最终要求,DIY过程是艰辛的,但是收获了成果时的那份喜悦只有经历过才知道,这里再贴几张效果图。


显示时分秒、周四,中英均能显示


闹钟时间08:30,喇叭图标表示闹钟“开”


能显示任何汉字,提取字库放入flash即可

文章来源:无线电杂志

围观 660

1 Comment