纯手工打造摇摆LED 时钟.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:12 大小:332KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

纯手工打造摇摆LED 时钟.doc

纯手工打造摇摆LED时钟.doc

预览

免费试读已结束,剩余 2 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

纯手工打造摇摆LED时钟时间:2009-05-11来源:作者:周正华点击:4693字体大小:【HYPERLINK"javascript:doZoom(16)"大HYPERLINK"javascript:doZoom(14)"中HYPERLINK"javascript:doZoom(12)"小】看到市场上正在流行的时尚商品——摇摆LED时钟,感觉非常新颖独特,正在玩单片机的我,激起了自己也想DIY一个的冲动。不就是一个流水灯吗?有什么难的?!于是,一个单片机项目就这样开始了。然而动手以后才知道问题并非想象那样简单,因没有任何现成的资料,机械的、电子的和编程的问题一大堆,一个一个需要自己来解决。经历二十多天的苦战和无数次的修改与调试,作品终于完成,基本达到预先要求。现将制作资料整理出来,与广大DIY爱好者分享。一.整体方案本制作是根据视觉暂留原理,让一排8只LED作往复运动,在空中呈现八个字符的显示屏,可显示数字或英文字符。开机后先显示“Welcome!”欢迎字符(见图1),再进入时钟显示状态。显示屏同时显示“时”、“分”、“秒”信息,用“:”分隔(见图2)。图1开机画面图2运行状态显示分“正常运行”、“调分”和“调时”三种状态。当处于调整状态时,调整的项会闪现,以便识别。为此,设置三个调整按键,一个为“状态键”,一个为“加法键”,一个为“减法键”。(见图3)图3按键的设置图4音圈电机组件摇棒的动力部分采用从废旧硬盘拆下的音圈电机(见图4),驱动采用直流电机驱动方式。结构方面,将音圈电机直接安装在万用板上,将万用板的四周用四根螺柱与一透明有机板结合成一体,构成支撑摇棒底座。(见图5,图6)。图5万用板与有机板构成底座图6底座侧面二.实作要点1.主板的结构布局见图7。图7主板布局图8摇棒上的LED2.LED的焊接,将LED两脚跨接在电路板两端的方式进行焊接。使LED紧密排列在一起。3.摇棒上的LED与主板上的信号用柔性排线连接,音圈电机供电占2位,LED信号传输占9位,所以至少要11位的排线。(见图9)图9排线与拉簧图10拉簧4.为保持摇棒的平衡,在摇棒接近旋转轴的两端加装两只拉簧,这两只拉簧的规格尽量保持一致,弹性强弱要适中,最好可多找几种规格的试试。(图9,图10)5.采用驱动直流电机正反转的方式,驱动音圈电机来回摆动。让电机正、反转的方法很多,最典型的是H桥电路驱动,H桥电路原理见图11,常见的是用三级管代替图中的开关。图11H桥驱动原理为了简化电路,最好采用H桥功能的集成电路。这种IC很多,比如象TA7257,TA8429H,L6203等,这里用的是三菱公司的M54544AL(见图12)。IC各脚定义见图13。图12电机驱动IC图13M56544AL各脚定义6.电原理图见图14。图14电原理图7.完成图见图15。图15完成图三.软件设计1.摇棒的启动为了使摇棒从静止状态过度到正常运行状态,在正式显示前加一启动程序。其实质就是逐渐加快驱动的频率,一直到摇棒正常摆动为止。通过下面的代码实现do{mm++;Delay(120+mm);put1=~put1;put2=~put2;}while(mm<60);Delay(20);//根据实际情况确定延时值2.秒闪现的实现:数字或字符的闪现是通过变量Ms和数组w[]实现的,如需要八位字符中的间的第4位闪现,则w[3]=1。这是通过全局变量Ms在voidtimer0(void)函数中每隔一秒改变一次状态(0或1),打开或关闭显示。if(Ms*w[ii-3]==1)P2=0xff;elseP2=~ASCIIDOC[v[ii]*6+jj];//正向显示if(Ms*w[10-ii]==1)P2=0xff;elseP2=~ASCIIDOC[v[13-ii]*6+5-jj];//反向显示3.调试中发现,显示屏上的字符并不是一样宽的(见图16),仔细分析是由于摇棒在运动中,一直受力,而且所受的力是随时变化的。为方便精确调整显示,特别作了一个显示中断表Tr[],改变显示LED的时间段,协调显示效果。图16调整前的显示4.按键去抖程序按键的去抖采用软件编程实现,其方法是当检测到按键的接口出现低电平后,隔一段时间再检测,如还是低电平,则确认为有效,否则无效。具体的程序是通过函数unsignedcharChKey(bitKey)完成的。5.显示同步因没有位置传感器,显示同步完全靠时钟中断来确定。这样就有一个问题,音圈电机的驱动信号在什么时刻改变,显示才能保持在中间,并能保证正反显示能很好地重合。经实际观察,音圈电机的驱动信号在显示中部,要根据具体情况细调。由程序中的变量Ta调试确定。6.完整C51程序代码/*POV摇摆显示LED钟C51程序周正华编2008.3.19*/#incl