1.显示部分
这是光影棒关键部分,用16个LED显示效果比较好,点阵多,可显示16×16的汉字,也好取模。还可以显示自画图案,点阵多点也好画图案。
最好用双色二极管,这样可以显示两种颜色的字。如果选用贴片的二极管那只能显示两种颜色了。但如果选用插脚的双色二极管就能显示三种颜色了:红、绿、黄。
所以,这个图我用了插脚的双色二极管。每个二极管的限流电阻没有加在公共端上,原因是限流电阻阻值相同的条件下,红、绿显示的亮度不同的,且当红绿同时显示时亮度会降低。分别串联限流电阻就可避免这些问题了。另一个原因是可以通过调整红绿限流电阻的大小,使红绿的亮度接近,才能混合出黄色,否则就不是黄色,而是偏红或偏绿了。
2.选择单片机
在确定了显示部分后,就可以确定单片机了。考虑引脚因素,我选择了AT89LS51/52,可工作在低电压下,这样,可用2节或3节7号电池,好固定。
16个LED需要有32个I/O脚控制,但因还要有两个控制按钮,按包已经是减少到最少了。这样,将P1口留作控制口、ISP下载程序接口和扩展接口,其余P0,P2,P3有24条引脚。所以,单片机的引脚还需要扩展8个,就用一片74HC595来扩展8条引脚就全部解决了。关于速度问题不用考虑,51单片机足够用的。在此不作说明,有疑问的朋友可另加解释。
3.LED驱电流问题,
最好要买高亮度的二极管,因驱动电流比较小,且亮度也高。但不同型号的二极管,红绿色驱动电流的大小是不同的。如我们原来用的双色二极管,在达到相近亮度的条件下,红色驱动电流较小,而绿色驱动电流较。但最近我们又买了一种双色二极管,是真正的高亮度,不过绿色驱动电流小,红色驱动电流大。但都比原来的驱动电流小多了,绿色为1mA,红色为1.5mA,用单片机直接驱动是足够用的。
4.两个控制按钮的作用
S2水银开关,根据摇动的方向自动变换显示不同颜色的字,如先开始向右摇显示红色字,显示4个字,再返回向右摇,显示绿色字,显示另4个字。每次摇动到底显示几个字就由编程时决定了。右左摇动一次则显示一组字。如果买不到水银开关就用按钮代替了,但效果不理想了。在北京的中发应该能买到水银开关吧。
S1计数按钮:有两个作用,一是用于调节工作方式的,有两种工作方式,一种是自动变换方式,另一种是手动选择方式。
可事先写入几组显示的文字,即右左摇动一次变换为一组文字。在自动变换方式下,每摇动一次就自动变换一组文字。这样,从开始第一次摇动,每次摇动就会显示不同的文字了,直到显示最后一组文字后,再回到第一组重新开始,怎么样,是不是很酷啊。
如果想就保持显示一组文字的话,就调节到手动选择方式。这手动方式下,每按一次按钮S1,顺次变换一次显示的文字,直至最后一组再从第一组变换。
这样,S1按钮就用两种选择功能了,首先用来调节工作方式,在手动方式下还要用于选择显示文字组。这种一个按钮多种功能的工作方式,要由软件来实现了。
具体的编程方法我暂时保留,看看哪位大虾能说出来,如果有说出来的,我向SOSO推荐给你加分加芯币。
5.显示模式
既然我们论坛中有很多高手,就要DIY出具有创意的有特色的光影棒来吗,在硬件方案确定下来以后,具体的显示内容和模式就由软件来发挥了。
(1)比较容易实现的是显示几个16×16的文字,这个水平一般。
(2)显示几组单色图案,这个有点水平,需要画出几幅图案,然后取出点阵数据。
(3)显示几组彩色图案,这才是高水平呢。图案中有红色、绿色和黄色,虽然颜色只有三种,但也可以画出一个比较漂亮的图型了。