基于db1的彩色立方灯和电子骰子——《无线电》第11期
2012-11-22 15:12:49 大家好,在上一期的文章中,我给大家介绍了db1电子积木。db1可以免焊接、快速组建硬件电路。文章发表后,收到了不少朋友的反馈。他们说db1的设计很精巧,照着我的制作实例也可以很快完成作品,但却还不知道如何用db1创造出自己的作品。
是呀,大家希望在db1制作上有所创新,不过创新需要多看、多做、多想,在有一定经验的情况下才可能突破别人思路的限制。最好的方法就是多练习,在现有的制作上改进,日积月累,你的创意自然会来找你的。所以今天我带来两个简单实用的制作,重要的是它们在现有硬件电路基础上有很大的程序扩展空间。建议大家认真阅读这两个制作的源程序文件,试着改进程序,加入你自己的创意。还可以加入按键等组件,扩展出更多功能。对于喜欢创新的朋友来说,db1是个很好的创新制作平台。
彩色led立方灯
下面我们就来制作彩色led立方灯——db1-007。这是一款体积小巧的三基色4×4彩色光立方,好像是cube4的迷你版。我们为它定制了有机玻璃外壳,把db1主模块和led灯装在外壳里,整齐、美观。db1-007中加入了一个水银开关,可以通过倾斜它来切换led颜色。上电时,db1-007为关机状态,led灯不亮。倾斜90°以后,再转回来时即点亮,再次倾斜可切换led颜色。颜色顺序是粉、红、橙、黄、绿、青、蓝、紫、白、慢渐变色、快渐变色、关灯。其中渐变色是指led会自动变色,好像北极光一样渲染出浪漫气氛。下面我们就来看一下它的制作过程吧。
所需组件
01.制作中使用水银开关作为倾斜传感器。
02.把三基色led灯的共阳极向外弯曲,并按上图插在db1主模块上。
03.按此方法插入外侧的4个led灯,再按上图插入内侧的4个led灯。
04.在db1主模块另外一侧再插入8个led灯。
05.把水银开关的引脚弯曲成下图中的形状,插到usb接口一侧的面包板上。
06.按“电路原理示意图”连接导线。
07.制作完成后,插入usb下载模块,给db1写入db1-007的hex文件。
08.把有机玻璃板拼成立方体外壳,其中有一片留出孔洞的板可套在16个led上,让led排列整齐、美观。
09.将db1主模块背面的胶带粘在外壳底面上。
10.外壳左右各留出一个小孔,分别是电源开关和usb接口。
11.制作完成后插入usb线、接通电源即可使用。
db1-007制作完成了,但作为电子diy爱好者,我们的任务还没有完成。下一步就是查看它的源程序,从中了解它的程序工作原理。尽力改进程序,让它变成个性的产品。比如,在笔者提供的实例程序中,关闭led灯是倾斜切换设置中的一项。也就是说,如果你想关掉它,需要倾斜好多次,这样不方便。能不能改成当led立方旋转180°倒放的时候关灯,再转回来的时候亮灯?这个修改很简单,只要把程序中“while(k1==0)
ledpwm(1);”语句改成“while(k1==0);”即可,意思是在水银开关通过时不调用led驱动程序,程序一直等待水银开关断开,这样led就关闭了。另外,以db1-007的电路设计,是可以独立控制每一个led灯的,这就意味着我们可以设计自己的彩色图案。只要稍微改进一下驱动程序,并设计一些简单的图形,就可以显示箭头、爱心等图形。在你机智的头脑里,db1有着无限的可能。
需要修改的程序部分如下:
if(r<=10){//渐变色时不再装表
pwm_r=co[r][0];
pwm_g=co[r][1];
pwm_b=co[r][2];
}
while(k1==0)ledpwm(1);//等待按键放开
电路原理示意图
未完...
(全文详见《无线电》11期)