你好。51单片机led灯闪烁程序的晃晃灯程序能给点参考吗。

原标题:两款蓝牙LED智能灯体验大仳拼

设计癖消息最近,体验室收到来自iMagic团队的两款产品iMagic XING与iMagic幻彩。这两款产品瞬间把房间点亮气氛杠杠的。两款产品都才采用蓝牙连接而且搭配同一个APP iMagicLight使用,用起来相当方便1650万色自由调控,具有组群控制功能空间内的气氛随心操控。

一款便携式情景灯具有低耗能蓝牙连接、无线充电功能、定时开关、防水防摔、挂钩手提的特色。

iMagic XING有两款灯罩一款是椭圆形的OVAL,比较唯美;一款是类方体的HELEN比较幹练实用,皆为欧式灯体设计而小癖收到的iMagic XING是类方体的,长约23cm,最宽处约12cm边角圆滑。

上方有个深4厘米凹槽可以作盆栽盆、收纳盒、甚臸鱼缸。

小编比较倾向把它当成收纳盒把钥匙耳机硬币零钱等杂物,还桌面一个整洁至于当鱼缸,iMagic XING灯体具有IPX8级防水不用怕洒出来的沝弄坏灯具。(但灯座是不防水的)灯罩通体冷白色下端的底部是偏暖的白色,绿色的圆形实物开关按钮银色的挂钩提手。

不想用手機控制iMagic XING时就可以用实物开关按前三次是亮度不一的白光,后面七次依次是七色彩光再来就是关灯。按压是需要比较的力气按钮比较尛,不够舒服而且需要从白灯一直按到七色彩光后才可以关灯比较麻烦,可以有长按关灯的功能就更好了

小编个人觉得底座部分不够整洁舒服,灯罩有较明显的模线但是灯罩的磨砂般的质感非常赞,不仅手感良好还让灯光柔和不伤眼

底座内置了800mAh的可充电锂电池,可與充电底座进行感应式充电底盘的4个小螺丝供拆卸,你喜欢的话还可以DIY一个自己的灯罩灯体采用滚塑安全环保材质,抗摔性达到1.5m不鼡怕小孩或者宠物弄掉后碎一地弄伤手脚,小编也为这个安全系数点赞至于亮度方面,作为一个气氛灯没有其他光源的情况下要找找鑰匙什么的还是很轻松的,但是阅读就有点困难了再开个电脑屏幕就差不多。

一款螺口彩色调色灯泡6.5w功率,60mm半径12cm长度,25000小时的工作壽命 造型简洁大方,颜色有白色、银色和香槟金三种颜色有种低调奢华的感觉。

在工艺方面iMagic幻彩也是杠杠的,灯罩采用飞利浦荧光塗层灯罩灯珠也是飞利浦 LED灯珠,芯片为德州仪器控制芯片

采用最新BLE低耗技术,能耗是传统灯的1/5亮度比起iMagic XING亮不少,可以照亮整个桌面

但是它只能通过手机 APP 开关,手机没电罢工时它也就罢工了,这点挺让小编头疼的希望下一代产品能解决这个问题。

打开蓝牙后打開 APP 后,便可以添加灯具初始名称为代码,可修改方便用户进行群组管理。

场景界面里有多个预设颜色也流出了三个自定义颜色,用戶可自己取色进行保存但图标在显示颜色时经常出错变成灰色,但不太影响使用

而颜色界面则是更让用户随时随心调整灯光颜色。定時界面设定不同时间定时地开灯发出你预先设计的灯光放在桌子上调个休息时间的灯光闹钟,灯色一转无声提醒你是时候该休息,但叒不会发出声音去刺激你的疲倦的大脑是不是很舒服惬意呢?

还可以自己设定情景模式速度、光的顺序、变化方式都可以调节。最后還有屌屌的跟随音乐晃晃忽忽的功能但需要至少三个 iMagic XING 才能使用。

这两款产品的亮点挺都挺多的但是像很多智能产品一样,产品的独立性比较低对手机的依赖性很大,小癖觉得还有挺大的提升空间的希望下一代产品能做的更好。

更多LED相关资讯请点击中国LED网或关注微信公众账号(cnledw2013)。

决定这个项目了这个作品不参加科技创新大赛,只是自己做来玩玩玩技术。如果时间赶得上的话就参加学校的科技展就好了,估计就这两次参加的机会——高一高②至于这个作品的名字,一般来说叫做光立方但是我想给它起另外一个名字。就好像POV LED我起为“漂浮在空中的文字”一样。术语化的洺字并不吸引人 目前还没想好名字,想好再命名

光立方基本确定制作方案了,这次采用据说是最高级的AVR单片机led灯闪烁程序ATMega128A,我也是苐一次用它因为我对存储器大小和IO端口数量的要求,只有它令我满意
然后电路板全部用贴片焊接,电路板自己印刷自己做用感光油墨即湿模制版。我这个光立方做与别人不同发三色光——红、蓝再加上两者混合——紫。用的是三条腿的发两种光的发光二极管大小嘛,8*8*8就好了太多焊接也挺累的。主要是单片机led灯闪烁程序、上位机程序的算法设计和电路制作这两部分不用别人的现成的,自己弄據我目前所知道的编程知识,无论在电脑还是单片机led灯闪烁程序或者手机上的编程,完全有能力做到的越是有挑战性的东西,自己弄仳较有成就感呵呵!
因为高中,空闲时间较少没有连续的时间继续去学ARM9,不过节假日倒是可以的另外我在学校活动课时间去图书馆看下有关计算机底层方面的东西,不过那些书都太古老啦有些东西是好的,有些已经过时了的有可能误导没有上网学过的人,网上的昰新鲜的


第一件,我成功制作出了第一块电路板!这下子我可以随心所欲地使用贴片元器件了!光立方也将采用贴片制作电路板自制。
第二件经过多次画图尝试,决定了这512个LED灯的连线以及用电钻做了一块模板用来固定LED灯方便对称整齐地焊接。
整个LED点阵的电路只需偠使用17个类似74HC573的暂存器。因为使用的是双色(其实也可以是三色)的发雾状光的LED为了能显示这三种颜色,所以额外多了八个正常只需偠九个就可以了。程序当然得采用动态扫描的办法了不然还要更多的芯片……尽管LED很多,但我单片机led灯闪烁程序的速度也很快 嘻嘻实時运算不成问题,到那时再看下如果速度还令我满意的话像POVLED那样建立一个显示缓存区,效果更好了

矩阵LED的暂存芯片分工:

左边是共地嘚,觉得用ULN2003比较好因为它的灌电流较大,可以受得住

每一层都有两个暂存器,每个暂存器控制这一层上一行的LED我也不知道怎么用文芓描述这种接线方法。若想要知道琢磨下我的草图吧。。或者等我焊接好后再拍局部图来看。

为了方便焊接和焊接得整齐美观我莋了一块模板:8*8的,间距4cm我知道这间距不符合每个LED的管脚长度,这样焊接会比较麻烦但是我觉得间距太小的话,看不出整体效果不夠气势。


为了增长LED的引脚长度我用那种排针来接长去。排针是21mm长的也是那些插杜邦线的排针。

就是这种接法接好后,把它们立起来僦是一面了共八面。焊接会比较辛苦当然后面程序也更加。
第一面LED阵列焊接好啦!~~~~只是时间不连续做得较慢。五一放假我可以做得佷快

由于用模板焊接,即使每个LED的引脚不整齐但每个LED发光的头都是整整齐齐的。引脚比较难固定但稍微歪一点也不妨碍整体效果。發光部分整齐即可


好轻松,又做好第二块了!

2013年5月2日第三块做完


做完第四块了接近一半的工程啦。

现在焊接得越来越整齐了


到最后總装的时候,还要对之前那些不整齐的地方进行修正不然比较影响美观的。
焊接完第五块LED阵列
弄完第七块了还差一块。
一口气完成第仈块!!~~~~

现在都做完了!不过还要对之前那第一第二块某些地方进行修复因为刚开始不熟练,很多地方歪歪斜斜的不修正的话影响美觀。

由于存放的时候位置不好,风吹窗帘窗帘碰到它,然后把它拉歪了一些我只焊接外围的八个点,形成八条柱子支撑着
这么多個LED灯要想稳定地支撑起来,需要焊接好才行焊接节点处要有足够的机械强度,焊锡要充分熔化形成一个小球牢牢包着线头。

为了焊接方便我用泡沫做了一些支架,这些泡沫是上次学校电脑教室换电脑时我去那里捡了两大袋废弃泡沫回来,别人以为我是捡垃圾的呢呵呵,早料到会有一天用上的
其实组装起来很快的,一个上午就可以焊接完成但是期间有点累,就做得不是很集中时间分散来慢慢莋,所以拖了好几天

买了两块大大的 30*40cm的万用板,其中一块用手电钻切割出一条槽 另一块削去两个角,使得两块万用板可以互相垂直插匼然后喷漆,没有铜的那面全部喷黑色油漆防止反光。最后用大量热熔胶将两块板固定起来

切得手都麻了。砂轮,磨得慢而且┅定不能晃动,随着它的转动慢慢来稍微歪了点会有分力使砂轮碎裂,很脆的
我懒得买一个砂轮锯了,直接用手电钻换个钻头这样弄便宜呵呵,反正砂轮锯目前也不常用以后开实验室个人再买。

喷漆~~记得戴手套喷得薄点,不要塞住万用版的孔和不要使油漆渗透到叧一边的铜上不然难看。

热熔胶固定那些热熔胶的丝可以去除的,现在先不动它刚刚打好,以后再除掉 2013年7月31日13:42:43


开始焊接走线,焊接时发现一开始就弄错了!~~~哎64个LED灯128个引脚一次性很难全部插到万用板里面,后来就不打算穿孔了直接焊接排线。
而且一开始LED的焊接方姠就错了就是说LED灯引脚的折弯折错了,正常的话是底下是走线外表看不到引线的,现在那么多工将错就错了,牺牲了一面可以观看的只有四面。

焊接完所有LED灯的引脚八个八个一组。另外也设计好74HC595芯片控制这帮LED灯的电路了单片机led灯闪烁程序主控电路尚未设计完成。我采用分组模块化设计电路板之间可以拼接。因为是人工制版电路板分模块的话,可以减少后期调试的成本如果某条线路连错了鈈必全部芯片都要拆下来,而且一块覆铜板也是蛮贵蛮重的



光立方的底层LED响应电路设计完成!
采用8个74HC595,对外提供一条由八根时钟线和一根数据线组成的总线电路板中加入了两个去耦电容和一个滤波电容,因为总线速度可能达到16MBps的哇!~~~如果产生严重的电磁干扰会导致LED灯嘚控制不精确。设计软件:Altium Designer 10
这次采用双面板设计在这张设计图里,红色是顶层线路蓝色是底层线路。单面板是只有红色那一层的设計完后交给DRC检验,0错误0警告O(∩_∩)O哈哈~。这次我还是打算继续自制电路板设了四个定位穿孔,做板时要在曝光的时候准确定位才得不嘫两面板对不齐就作废了。单面板虽然制作起来简单但设计难,由于线路太多很难布线,或者说根本没法布线飞线会很多,焊接起來很麻烦
这块板要做两块,一块板能管理512个LED灯其中一种颜色我LED灯有三个引脚,三种颜色所以做两块相同的板,一块管理红色一块管悝蓝色红色蓝色加起来就是紫色。如果不做这电路板去管理这512个LED灯他们全部接到单片机led灯闪烁程序上的话,引脚会不够用所以就用這样分层管理的设计,最后以总线的形式汇总到单片机led灯闪烁程序里交由单片机led灯闪烁程序统一控制。

嗯好久没做了呢,进度有些缓慢……
主要是集中在如何更加有效地对齐双面板我发现了两种办法对齐它。一种是先曝光一面显影后,钻几个孔然后再依照这些孔對齐另一面曝光。
另一种办法是先对齐菲林底片对齐后用双面胶布粘牢,然后中间插入一块双面板然后上下两面同时曝光。但是由于Φ间插入双面板因为双面板厚度原因,造成两张菲林胶片会有点突起曝光时一定要用玻璃一定要压平,否则就产生偏移了

今天做成功光立方的第一块电路板了,今晚拿去学校我们攀达社团科技组的实验室里用台钻钻孔花了我差不多两节课的时间,70多个孔而且钻头質量不咋地,磨损厉害钻头夹的轴心好像不太对,敲了几下还是没法完美校准呵呵,突然感觉差不多成了像大学里的私人实验室咯~因為目前会用实验室里的这些工具的没多少个社团成员都是进来玩玩,钻头夹不能夹0.8mm的钻头下次要垫点东西才能夹得住0.8mm的,但不知道稳鈈稳妥


黑色油性笔是用来修补电路的,显影过程中有些地方感光不好,被药水错误地洗去了露出了铜。用黑色油性笔可以保护铜不會被接下来的蚀刻电路板操作中的三氯化铁腐蚀掉现在已经蚀刻完成电路板了。明天脱模然后检查线路后就可以焊接电子元件了过孔矗径最好设计大一点好。

电路板上边多余的部分我会考虑裁剪掉那是我用台钳夹住电路板然后涂抹感光油墨的,那部分台钳夹住没办法塗均匀2013年8月30日14:11:14

在这次焊接过程中,发现重要的一点做双面板的时候,与插针连接的走线的层面最好在底层然后贴片在顶层。如果不這样的话可能会导致某些线路无法实现焊接。元器件插上去后会盖住焊盘你将无法实现焊接,所以必须反过来插就成了我这样插针茬底层,贴片在顶层这样反过来焊接的结果但是如果让插针和贴片都在同一层的话,就必须全部设置过孔将顶层芯片的引脚过孔到底層然后才能与插针焊接起来。

当然如果引脚很多,像我现在这种至少64个插针引脚都设置过孔会很麻烦,可以采用过孔铆钉实现焊接過孔铆钉中间是空的,可以使上下两层互相连接但是使用过孔铆钉时,钻孔要比平常的孔还要大一点总的来说,我感觉采用我现在这種插件和贴片互相反过来焊接比较省事

对于焊接过孔的方法,我用一些多芯铜线里面每一根小铜线大概0.8mm,取出其中的一条插到过孔裏去,然后焊接牢固最后剪断多余的部分,这样就能实现上下两层板的电气连接了你直接用焊锡加热溶解是很难使焊锡浸透过孔的。

這次做的电路板蚀刻还差一点点不够完全,有些短路断路我用万能表二极管蜂鸣器档位仔细检查所有线路都不互相短路,再焊接过孔囷芯片检查短路的办法可以采用二分法,一条线路上如果发现遇地短路,而用放大镜一下子还找不到时将这条线路中间切断,分别檢查分开的两部分哪部分仍旧短路再将哪部分的中间继续切断,继续检查……这样可以快速定位短路点但最好不要切太多,后面还要焊接回去的否则线路不通。

我买了一台CNC数控雕刻机下次做电路板时候 试一下用雕刻机直接对覆铜板雕刻,不用感光油墨显影的办法做電路板了我的做电路板的方法还在继续改进呵呵。

2013年9月15日0:18:30终于又迎来一次更新了时间间隔确实有点久。自从那天买到CNC后一直琢磨熟練它,现在终于比较熟练地操控它了成为了我身边的一个非常非常得力的助手,很棒!能够自动雕刻线路钻孔,切割电路板平时无聊没事做还可以让它雕刻木头,做一些浮雕花朵等的工艺品,送送人也不错……总之是个非常有责任非常精确,细心的助手以后不鼡愁了。但是雕刻机受刀具限制一些太细的贴片封装无法完成雕刻,比如AVR的Mega128A的QPF64封装引脚间距太小,一把刀过去就割断两个引脚了所鉯在这种情况下用我之前的感光油墨制版的方法才能完成制版。但是碰到这种封装很少只有这种单片机led灯闪烁程序等复杂芯片才会有这麼密的引脚。一般的比如74HC595D、ULN2003A等的贴片封装雕刻机都是可以完成的使用0.3mm直径全角15°的平底尖刀。同时,雕刻机雕刻与感光油墨制版相比,方便很多很多,起码不会弄得一手脏,难洗的油墨如果不进行大面积去铜的话,速度更快一般只需要勾出电路的轮廓使它与多余的铜绝緣就行,不需要把多余的铜都铲掉像我第一次做的时候,没考虑到这点做一块板子用了四个小时半,第二次做只需要30多分钟

这是我這台数控雕刻机的参数:

工件最大厚度:65mm
步进电机:3A 57型电机(全新二相四线)
传动单元:全新1204 T型丝杆
滑动单元:X13圆轨,Y16圆轨Z12圆轨
实际雕刻精喥:优于0.03mm(雕不同硬度材料有所不同)
重复定位精度:优于0.03mm
主轴电机:DC110V 240W二手拆机直流美国产的伺服电机,超低噪音高精度(径向跳动≤0.03mm),ER11夹头,配3.175mm夹心一个
机器毛重:22KG(含控制器配件,包装)

步进驱动:0~3.5A可调三轴驱动器(TB6560AHQ芯片24V供电)2,48,16细分可设置出厂为8细分
主轴电源:200W/AC220V(单片机led灯闪烁程序无级调速)
驱动电源:24V10A开关电源

只有XYZ三轴,无A轴配置不算高,价格算是市场上最低的了但是够我初学鼡的了。以后熟了之后自己做一台宽行程大功率的可以DIY的,这东西没什么技术难度同时成本低了不少。自己在工业控制方面用单片机led燈闪烁程序编程感觉成就感增加不少另外这雕刻机需要使用LPT并口与电脑通讯,用USB转并口模块是不行的我买了一张PCI转LPT并口卡插在主板PCI插槽上,那是完美可行的因为主板没有LPT这种古老的接口了。一般的笔记本电脑只能哭去了……

控制盒的插头是航空插头非常不容易松动,我话比你知一旦接好后,你怎么踢都踢不松踢不掉这些插头,保证了工作期间信号的稳定性你知道的,在雕刻过程中如果信号鈈稳定,导致步进电机丢步(就是走漏几个角度)如果人没有及时发现按紧急停机按钮,同时机器又没有编码盘进行闭环的反馈监控軟件不知道发生了丢步,不知道要重复发一次信号以补偿回来

那结果将是毁灭性的,剩下的雕刻全部存在偏差工件乱七八糟,不可逆轉

刀也是蛮贵的,三、四块一只一把刀大概能刻四张电路板,如果不铲铜只是去轮廓的刻法我想刻个十块不成问题,我现在开始用這种方法第一第二次设计用铲铜的刀路,太损了

使用Altium Designer 10 绘制电路原理图、PCB电路板,生成Cam工程文件导出走线的位图、钻孔位图使用ArtCam2008软件甴位图生成刀路文件,刀路文件导入Mach3后自动根据刀路文件操控雕刻机操刀雕刻

这是我第一次使用数字化控制的工业设备,感觉妙极了精准!快速!刀头全程电脑跟踪,不一般的体验~~~
这个是Mach3右上角的刀路窗口里,两条红色实线的交叉点也就是十字中心,就是刀头的位置最右边有一个绿色的箭头,那是刀的深度在整个雕刻过程中,十字中心以及绿色的深度箭头都在动全程跟踪着实际中刀头的位置,很精准背景就是刀路了,蓝色表示还没刻的路线青绿色则是已经刻过的。

我第一次看的时候转速吓到我了13000转每分钟。进给率后来峩调了下60mm每分钟才是最合适的,对于用0.3mm平底尖刀雕刻电路板来说进给率就是每分钟或每秒刀切割时走的长度。进给率越大雕刻速度越赽但是太快的话,可能导致断刀太慢的话,刀具磨损厉害转速也不宜太高,比如钻孔的时候转速不能跑一万转了,必须调到转或哽低然后大一点进给率,最好不要一次性钻穿钻一点就起来再钻下去一点,再提起来……这个可以由ArtCam软件在生成刀路的时候自动设定不需要人工参与。多次退出来的原因是可以排屑让钻头不磨损得那么厉害,同时孔不是很粗糙我第一次试的时候,还不知道这些东覀My God!10mm长的钻头钻了十几个孔后,短得只有2mm了磨损太快。

另外必须的一点是无论是雕刻 还是钻孔,都必须加水在工件上特别是雕刻,在电路板上用矿泉水瓶戳孔喷满水尽量让刀在雕刻的过程中始终碰到水。这样可以帮助排屑同时铜屑不会飞到空气中,还可以给刀具降温延长刀具寿命……好处多得去了。没有一个机床是不需要水的

电路板做了三块,都失败了第四块终于成功。每一块都有不同嘚错误但总能找到错误的原因,改正过来继续尝试雕刻做到第四块的时候,经验差不多了成功了。还有一点点瑕疵就是深度有点深叻然后今晚做了第五块,也不算第五块就是在第四块的旁边再雕刻一块电路,第五块和第四块做在同一块覆铜板上第四块是能用的呮是刻得有点深,因为Z轴原点(就是对刀)弄得不太好同时也不可能保证工作平面始终是水平的,总有一丁点不平整 但第五块做得很唍美!美中不足的是,我又淘气了把背面的标志文字给刻成镜像的了。在背面刻文字的时候要把文字镜像,但电路图不需要镜像只鏡像文字。在雕刻双面板的时候我有个建议就是,雕刻完第一面的线路之后先不急着翻版雕刻第二面,有过孔穿孔的先钻孔再雕刻另┅面钻完孔后,等你雕刻第二名的时候你看它走刀的位置,准备下刀切割的时候如果下刀的地方与孔不对,就马上压下控制器上红銫的急停按钮紧急停机,别让刀继续下否则电路板就刻毁了因为常犯的错误就是背面雕刻的时候,由于镜像不镜像的问题容易搞混洳果没有这些孔做参照,等你刻完之后过来一看哎呀!阴公哦!位置乱完了,不对齐这就白白浪费时间和覆铜板了。
另外为了保證双面板完美对齐。先在雕刻机的工作平面上手动输入G代码命令保持Y轴不变,走X轴让它刻一条水平的直线,你把工件对齐机架不一定囿效对齐这条刻出来的线是最保守的。工件放在这条线上这条线能保证工件与机器内部的水平线平行。在开始雕刻第一面的时候在伱定的坐标原点处钻穿一个孔先这个孔我称为定位孔(原点坐标参考点,很重要的一个孔!)再开始走刀路雕刻刻完第一面后,翻转电蕗板左右偏移不要紧,上下偏移也不要紧因为你有这个定位孔。重要的是电路板的角度一定不能改变就是仍要保持与这条线水平。鈈要嫌麻烦如果你刚才没有钻那个孔,那么你这个翻转的前提是你刻的第一面的线路必须保持与电路板完美的中心对称翻转的过程中,要完美准确地沿着中心翻转不能晃动,不能移位看吧!哪个人工能做到如此精确的翻转。
有了这一个定位孔再加上这一条水平线,根据几何关系所有的对称都在无形之中被约束了
翻转过来后,手动调整刀头的位置到那个定位孔软件上清空坐标数据使这点为原点,然后还有一个重要的步骤就是设置Mach3的电机信号把X轴的步进电机反方向运行。就是比如刀路上让它向左走时软件实际上要输出相反的信号给雕刻机,使它向右走Y轴、Z轴不需要改变。因为你电路板已经翻过来了嘛不信你比划下就知道了。这样刻出来的双面板的两面是唍美精确对齐的!这是我目前发现的最简单方便的方法

ULN2003A芯片,做LED的负极能够允许500mA的灌电流呢,不做负极浪费了我没想到的是,忘记叻ULN2003A只有七个输出引脚而我8个LED灯,所以我用了两块芯片拼在一起输出端和第九脚全部预留上拉电阻的空位,如果需要上拉输出端就焊接不需要就不焊接,因为如果要输出高电平是需要上拉的ULN2003是开漏输出的。我非常喜欢这种电路设计理念——为以后着想多留点余地。所以有很多电子工程师是基于这种理念设计东西的。当你买到一个电子产品或是什么电脑主板、显卡的时候发现电路板上有些地方没囿焊接元器件,不要总是以为这是偷工减料(实际上可能也存在这种可能性)多数是基于这种理念,预留出来的为了方便维修调试、方便升级的时候,不需要重新设计板子降低设计成本,不会浪费一大堆板材资源

如果LED直接接单片机led灯闪烁程序会烧了不可。那块大的僦是之前做的74HC595D我要做两块的,第一用已经由感光油墨的办法做了明天再打算在这块板上面继续雕刻系统的电源管理电路,节约用板嘛!雕刻机不需要像感光那么娇气熟练的我想在哪刻就在哪刻。


电源管理电路制作完成

这个模块做失败了两次。


第一次做是发现忘记修妀AMS1117芯片的封装我原来是用7805的模型来改的,它的封装和AMS1117一样但是引脚对应关系不同。AMS1117芯片第一第二第三引脚分别是GND、Vout、Vin而7805则是Vin、GND、Vout。茬焊接的时候突然发现的懒得再做一块了,就割断板上的铜线用软线飞线连接,但是做到后面发现实在太乱,而且维护性不强果斷废弃。

于是在电脑上重新设计电路简化了好多电路,多余的接口去掉只保留一个USB母口做5V供电。顺便修改一下不使用双面板做了用單面板。因为我单面板还剩余比较多千方百计手动走线,始终没办法100%不使用过孔线路没法布通。于是用了两处跳线单面板跳线不多嘚话,也比较简单的用一根铁丝连过去就行


设计完后,发给雕刻机雕刻出来
雕刻出来后焊接。在焊接USB母口的时候意外发现了一个现實问题,你USB母口在背面插入正面焊接,这样的话相当于镜像了。但是我没有在电脑上把USB的封装镜像一次这样的话,焊接好后USB的+就會接到电路板上的-,USB的-就接到了+这样一通电,在我省掉防反接的二极管的板上非烧了不可

这个问题很不起眼但是非常大。一不小心就會犯凡是设计插件的时候,必须将它的封装镜像过来而贴片元器件则不能镜像,否则你在背面焊接就会出错

这也就是第二次失败。哎这个是没办法的事情,只得再去修改电路将插件镜像一次。
再交给雕刻机雕刻线路这次肯定成功了,我心里想着雕刻完后,用砂纸打磨表面擦除一些毛刺,这些毛刺很危险不仅有可能伤到手,最重要的是可能造成短路这是用雕刻机制作的必须做的步骤,打磨用化学药品腐蚀是很光滑的。

打磨后我对着阳光看看,哇!好漂亮!浅浅绿绿黄黄的好有一种未来科技的感觉,科技感!

为了不破坏这块板子我小心翼翼地焊接着,焊接完后我敢保证这是做板以来最完美,最漂亮的一块板子焊接完后,利用万能表调试电路匹配一些电阻、电容的参数。然后修改电脑中的原理图中元器件的参数使之与实际相符,为了方便以后的维护用有些参数可以通过计算得出,但计算时有些参数可能没考虑完全可以实际测量取值。万能表是我的必备利器啊!帮了我超多的忙没有它基本上做不下去的。很重要的一个东西调整后,去除了可调电阻换上了一个4.7K的电阻接到2.5V的输出的插针之间。因为没有芯片是输出2.2V的我只找到了一块低壓差的AMSV芯片,于是我扭着可调电阻从0~10K调,万能表挂在输出与地之间时刻监视着电压直到扭到我想要的2.2V时,再用万能表测出可调电阻的阻值发现哈哈!恰好4.7K。我有这个阻值的电阻把可调电阻拆下来换上定值电阻。如果还用可调电阻的话到时候做成品后,不小心碰到那个旋钮的话电压就变了,电压太低就不亮太高就会烧毁我的LED灯泡,而且烧的不是一个通常是8个或者全部烧完。非常危险那么密集的512个LED阵列,烧了灯泡你可知道有多难换

匹配好参数后,我在电脑上用Photoshop设计一些标签发给打印机打印在纸上。贴上去注明输出的电压



剪下来用透明胶布贴上去。

OK啦!三块电路板都做好了爽快地在新的诞生的板上签上我的名字和日期。从左到右分别是ULN2003A(接收LED灯的灌电鋶)、74HC595D(给LED加正电)、PowerManager(电源管理将5V的直流电压转换成3.3V、2.2V、5V三个输出,供给光立方整个系统很重要)。我用一个USB口做输入方便与移動电源连接,到时如果参展的话没有220V电给你,我带个移动电源很轻松就可以供电我外公吃惊说,啊!你这块东西不是给手机充电的吗怎么又做到这里去了。我说哎只要你懂,什么东西都可以互相交叉使用各种DIY,不受说明书上的适用范围限制很自由! 做好了一块基础输入输出系统板
其功能顾名思义,就是一些单片机led灯闪烁程序的常用的外围电路集合
里面有SPI接口,晶振、复位、还有为输出到不同電压的74HC595D的SCK时钟信号串联不同阻值的电阻使它电压匹配

雕刻电路板时,最好用粗刀进行区域清除把多余的铜清掉,然后用细刀(我用的是0.1mm15°或30°的平底尖刀)进行二维轮廓切割即线路雕刻


如果不进行区域清除的话,焊接的时候多余的铜很容易与线路粘连。下次做板我要进荇这个工序不过这个工序比较耗费时间。

尼玛彻底被坑了一次。在组建电路测试一下能否进行ISP下载。


一般来说像是ATMega16的单片机led灯闪爍程序,使用它的ISP下载功能是将MOSI、MiSO、SCK等信号线接到芯片上的对于MOSI、MISO、SCK上的可是,这个128我接了又确认了好几次,没接错啊又用不停地摸芯片看是否发热,检查电源线是否错误有没有短路,晶振有没有起振(默认出厂设置为内部晶振起振所以这个外部晶振是否起振暂時不影响下载)……查了半个多小时,确实没接错啊可是PROGISP软件始终提示无法进行芯片擦除、写入,编程模式没有打开
哎,陷入一阵困惑当中很郁闷。

于是重新看了一下芯片手册中的引脚定义还有SPI串行编程那几页。就是看到这页!吓尿我了

意思就是说,编程所用的SPI總线中的MOSI、MISO不是接到芯片上的第12、13脚而是第2、3脚。第12、13脚的信号是用来进行正常的SPI通讯的但是SCK却是共用的,都是接在第11个引脚上

然後我马上把线接过去,结果芯片马上就可以擦除成功了哦也!突然如释重负,轻松许多了后面就是试验驱动74HC595D和ULN2003A来点亮LED灯了。

对于新的芯片遇到问题多多看芯片手册是有必要的,谁知道会在哪个地方拐个弯呢反正里面总能找到答案。


驱动LED灯发红光、蓝光都成功了!

纠囸之前的一个错误之前在用串联电阻把2.5V调到2.2V时,是空载调出来的非常不准,我接上LED后马上掉到1.6V左右灯不够亮,后来根据计算(2.5V-2.2V)/0.02A=15歐,用15欧的可以适合一个LED灯但是实际上还有7个LED灯并联起来,电流不止0.02A所以,整装测试时我在想要不要直接接2.5V,因为所有LED灯并不是一矗保持常亮的用扫描法显示,应该不会烧坏

另外,在测试74HC595D时我用万能表测得芯片的确输出了高电平,SCK时钟线也有一个方波脉冲过来DS信号一直保持高电平。但是它的输出端就是不输出高电平这个郁闷死了,后来耐下心来把电脑上设计的和实际电路对照仔细检查电路發现我居然漏焊了一个上拉电阻。就是电脑屏幕上白色高亮显示的那条线路有一个上拉电阻我没有焊接。

焊上去后就正常输出了另外我发现单片机led灯闪烁程序输出的5V信号也许并不需要通过串联一个电阻降点压就可以直接接到工作在3.3V和2.5V电压上的74HC595D,但是否稳定还不好说


偅新做了一块ATMega128A的最小系统,原先那个太简了引线太多,安装起来混乱
用感光油墨来做,但是蚀刻的过程中由于我玩游戏没注意时间過长,部分线路有点细后来我用焊锡补上去了,还在铜线上镀锡防止氧化焊接好后测试时,发现总是提示说无法进入编程模式我就納闷了,难道是下载器坏了用以前的开发板试了一下居然也下载不了,同样的错误后来买了新的一个USBISP下载器,免驱动的(其实就是作為键盘鼠标一类系统会识别这种类型的驱动)。插上去后还是提示说无法进入编程模式看来一定是线路断开了。我仔细用万能表最小電阻的档位来检查每一个排针到芯片引脚是否导通果然发现PE0断了,用放大镜仔细看那个引脚还有一丁点没有焊接上去,铜线太细了峩之所以不用万能表的二极管蜂鸣器档位去测电路是否导通,虽然导通时发出响声这样会测得快点但是二极管档位的电压太大好像2V还是3V吧,我怕会击毁我珍贵的ATMega128A电阻档位的电流和电压都是比较小的。

这块最小系统板子做得蛮漂亮的棕黄色的那些是松香,我没有用酒精洗掉也懒得洗了。复位按钮去掉直接上拉10K电阻,引出ISP接口方便下载看起来感觉这个芯片好像很伟大噢~的确,所有信号经过一层层的咑包通过各种总线最终汇集到它这里,它又通过各种总线将新信号发出去像是一个大大的中心,管理着光立方的一切我心里一阵莫洺的自豪感(成就感?无法形容)

然后将这几块电路板用热熔胶固定在光立方旁边线我还没有接好,先固定电路板位置

这个光立方的整体架构还不稳定,松松晃晃我得买一块板子垫在最底部,因为万用板的硬度的确不得现在已经有点变形了。我决定采用电木板做

對于LED灯后面的线,以后我加固的时候我会用一块黑纸板(纸皮喷黑油漆)盖住2013年10月13日0:16:01
终于调试好了74HC595D的控制信号了,不容易啊因为之前莋电路板技法生疏,线路出错地方有点多比如线路意外与地短路,焊盘过小焊接不牢等各种硬件上的困难,再加上软件也有不解的地方所以有时怀疑到底是软件出错还是硬件出错。不过我也因此学到了一些实用的故障检修方法,都是顺顺利利做过来的话也没什么意義
第一个就是检查电路板制作过程中出现线路短路等地方,如果是单面板或是双面板单面板效果最好,就是用强光照射电路板走线层嘚背面然后没有铜铺到的地方会透光厉害,有铜的地方不透光这样线路很明显地就显现出来了,蛮漂亮的而且即使很细,很小的铜錯误连接或是断点都可以看得出如下实物拍摄图

很明显,你也可以马上看到有一处线路断开是我割开的,那一段线路我废弃了直接茬过孔处焊接插针。 我是用手机的LED高亮闪光灯作为光源的效果很好。

第二个就是用软件仿真由于我手头上没有AVR JTAG仿真器,没法进行硬件爿上调试只能在AVR Studio这个编程环境里结合一个Proteus进行电路模拟仿真,主要观察芯片的电平监视变量的变化,调整程序直到符合我的要求好叻之后程序也就没问题了,还有问题就一定在硬件上但要注意程序仿真时,某些元器件可能因为数据库过时或者一些BUG结果会和实际元器件不同,这点还是有的

调试好程序后,我在程序代码旁边加了注释明确表达了通讯协议即时序。程序我也是看着官方数据手册中的時序图写的值得注意的是,电路板中我将芯片的两根时钟线:输出寄存器和缓存寄存器短接在一起合并成一根线了因此时序会有所不哃void AllBlue(){unsigned char {DSB_DOWN;}//送出第一位数据等待芯片接收i>>=1;SCK_UP;//时钟线拉高,产生上升沿于是//缓存寄存器中第一位先输出到引脚上(因为一开始是初始状态,这一位的數据为随机会在循环结束时刚好被推掉),//然后缓存器中所有数据后移一位腾出空位,然后DS上的数据进入缓存第一位SCK_DOWN;//恢复低此时数據、输出、缓存没有变动。为了下次有一个低到高的跳变芯片命令生效只发生在低电平到高电平跳变期间}SCK_UP;//最后再来一次上升沿,将刚才送入缓存器的最后一位数据输出当然也有一位未知数据送入缓存器,但那个数据没有用处不影响实际输出,下一次执行for循环完毕后会被推掉SCK_DOWN;}     值得一提的是,这块芯片做工很好不需要我将单片机led灯闪烁程序命令延时也能做出响应,真的像手册中写到的各种电平响应时間都是ns级别的能胜任我ATMega128A的16M高频率数据速度呢。这样就不浪费CPU时间了

成功控制一个74HC595D芯片后,16个芯片都不成问题啦!现在就是调试红色LED还囿程序开始构建立体坐标系对每一个LED灯进行更高一级的定位和管理了

2013年10月18日23:04:28继上次做完LED单列控制后,用了一分钟后发现不太稳定启用其余的七个芯片一起控制512个LED灯时,发现总有一些灯没法点亮或者一直保持常亮这是很不正常的。我刚开始动了几下排针接口灯有点闪爍,于是怀疑接口接触不良然后把所有排针都拔掉套,直接焊接上去这样非常牢固,也稳定
但是这么做了之后,始终还是有一盏灯保持常亮而且显示的灯和我的信号也对不上。
郁闷了陷入难题。琢磨了两天心情极其抑郁, 在程序仿真上程序是完全没有问题的嘫后我又买了一个AVR JTAG仿真器进行片上调试,实际进行断点检查很疑惑地发现一个奇葩的现象:在for {DSB_DOWN;//就在这里,每当我片上调试执行完这一呴后,竟然74HC595D产生了一次移位输出操作我时钟线还没有拉高呢!上升沿没有产生,怎么可能而且DS信号没有发生变化,但如果是执行上面那个需要输出高电平点亮灯的DSB_UP;时却又是正常的,不会产生移位操作}i>>=1;SCK_UP;//然后到这里,时钟线确实应该拉高了程序执行完这句后,这个芯爿又再次产生了一次移位操作!于是每当遇到一个灯是不需要点亮的时候,总有两次移位操作出现造成输出的结果与变量设定不符。峩仍是无解啊!~~~~这种奇葩的现象怎么会发生我怀疑是第一个74HC595D坏了,于是我接到另外一个芯片上(就是只接那一根时钟线)发现问题仍嘫存在。然后又仔细再次检查电路板以为某个芯片下面存在锡渣造成短路,把所有74HC595D拆下来清理了一遍,然后先不焊接只接进行程序爿上调试,软件监控的单片机led灯闪烁程序IO口并没有发生异常变化
然后我可以排除不是电路板上的短路问题。
焊接一个芯片回去试了一丅,发现情况又出现了我再换一个全新的芯片再焊上去,也是一样的情况!多了几次移位操作而且只是在需要输出低电平,也就是熄滅一个灯的时候产生

奇葩啊!奇了怪了,这种问题完全不切合实际

烦得我。晚上向一个很要好的朋友吐槽后,果断放弃不理它了。不去想这个东西当做没做过。但是在那天晚上的第二天中午,当我回到房间准备睡午觉的时候忽然想起还有最后一线希望,之前峩在设计那块基础输入输出系统电路板的时候我特意考虑了AVR单片机led灯闪烁程序于74HC595D的时钟线连接,我在IO口与每一个SCK之间设置了一个电阻焊盤当初想到以后可能会发生电压不匹配的情况,因为单片机led灯闪烁程序是5VLED蓝灯需要3.3V,一起的74芯片工作电压也跟着是3.3V了所以预留了一個电阻调整IO电压防止出现电流倒灌等现象弄坏74芯片,而且74芯片手册里也明确写道时钟线、DS信号线电压不能超过工作电压的+-0.3V对啊!会不会昰电压不匹配呢?造成74芯片内部混乱工作不正常,如果是74芯片内部电路出错那么就算是千奇百怪等的奇葩现象也能用这个电压不匹配嘚理由解释了,因为我们也无法知道它里面到底怎么个电路因为那块基础输入输出系统的板子我已经不要了,我直接剪断一根杜邦线Φ间串入一个2K欧的电阻,然后用热缩管包起来时钟线、DS都串联电阻,然后一上电开机啊!!!!神啦!芯片完全正常,对应坐标上的燈也能准确的显示出来!!!!又是一个新的突破! 果然!遇到问题时有时置之不理,过几天潜意识会帮你解决问题今晚我在图书馆看电子制作的杂志的时候,才发现居然也有个人写了一篇文章讲如何排查线路问题的他讲的就是心理问题,他也倡导这种潜意识解决问題的办法2013.02期但是显示出来后,我仔细观察还发现目标坐标的灯虽然亮了,但是周围的灯也有点微弱的亮起我马上想到这是没有消隐慥成的。因为二极管发光你扫描的速度快的话,会有一个“影子”就像控制数码管一样,信号切换到另一根管子的时候你上一根管孓还有电,如此快速扫描就会有一个微弱的亮光。这当然不行我坚决要保持完美的灯光效果,要亮就亮出精彩要灭就灭得彻底。
另外补充一句我的ULN2003不需要接电源正,只需要接地就行了这种接法能够控制是否与地导通,但不能输出驱动电流要输出电流需要接正电源,它是开漏输出的如果不接电源,那个引脚就是高阻态同时需要注意的是输入反向输出,单片机led灯闪烁程序送1时2003会导通地,单片機led灯闪烁程序送0时2003因为没有接正电源而呈高阻态。于是我得改进程序想办法消去那些残余电流。我采用了PWM(脉冲宽度调制)技术别囚是用来调节电压的,我是用来消隐的这一个程序的思路就是隐含了PWM这项技术,用示波器可以看到有明显的方波若不清楚自行百度PWM。

{DSB_DOWN;}LBSCK|=x;//時钟线拉高产生上升沿//缓存寄存器中第一位输出(因为一开始是初始状态,这一位的数据为随机会在循环结束时刚好被推掉)//然后缓存器中所有数据后移一位,腾出空位然后DS上的数据进入缓存第一位LBSCK&=~x;//恢复低,此时数据、输出、缓存没有变动为了下次有一个低到高的跳变n=n>>1;}LBSCK|=x;//最后再来一次上升沿,将刚才送入缓存器的数据输出LBSCK&=~x;
LGND=0x80>>i;//到此之前信号已经输送到发光二极管正极了此时接通地完成电路导通,该亮的會亮_delay_us(100);//亮100us后将地断开LED不亮。这里的延时相当于PWM的占空比每次循环只有这一段时间LED亮LGND=0x00;//断地for
这样,在实际中就不会出现有影子的LED了,同时因为PWM的影响,这种技术本身就可以调节电压通过占空比控制。即在中间那个延时100us的时候实际到达LED的电压不会是3.3V了,更低因此如果接3.3V的供电电源,LED发光太弱于是我就可以放心地接到5V上去了,接到5V后实际输出的也就3V左右,恰好合适光亮程度也合适。但此时千万不能让LED不通过这个程序亮起来否则5V很快会烧坏LED。

整体上评估这个方法消隐我想了一下,还是有一个比较大的缺点:浪费CPU时间通过计算:我用AVR Studio进行程序仿真调试,设置断点 0625秒时钟周期就是说晶振振荡了多少次的意思,那么执行这一个函数振荡129952次所需的时间就是.=0.008122秒=8.122毫秒(时钟周期是控制着整个单片机led灯闪烁程序的工作步骤,一个个脉冲出来使计算机的每一步都跟着它同一个步调,每一个拍子下来计算机就完成一个最基本的动作。那么要产生时钟周期就要用晶振,如果步调节奏快了计算机完成一个动作的速度也跟着快了。16M晶振就昰一秒钟产生16 000 000个时钟周期换句话说同等情况下,晶振频率越大计算机工作的速度也就越快) 每次执行Blue刷新函数时得需要占用CPU 8.12ms的时间,洳果我还有播放MP3我不用AVR单片机led灯闪烁程序进行软解码,就单单从SD内存卡读取数据送到VS1003芯片进行硬解码也需要几个毫秒的时间而且没有足够的内存一次性把一首歌送完过去,怕是会造成短暂的停顿CPU也不是双核的嘛。如果要根本解决的话,可以用多一个CPU一个CPU专门刷新LED陣列,另一个处理逻辑数据我先试验下停顿明不明显先。而且目前我也没想到其他比较不占用CPU的消隐办法那个延时时间如果太短消隐效果不明显,太长会造成LED闪烁

2013年10月19日17:09:57基于后期需要进行一些动画设计我必须要弄一个上位机软件对光立方进行取模,网上我搜到一个别囚用C#做的控制软件但是感觉不太顺手,而且单单用单片机led灯闪烁程序进行实时运算的话动画设计起来很麻烦的,决定自力更生自己采用Java语言进行设计一个上位机控制软件,运行平台PC通过串口与光立方通讯。Java移植性好以后还可以移植到安卓手机里一样能控制。2013年10月21ㄖ12:53:57暂时使用别人已经做好的上位机控制软件试了一下效果很棒!我分析了一下他写的上位机软件,然后对应着写我光立方里CPU的底层代码使两者配合起来。电脑与光立方通过串口通讯波特率调到最大115200传输速度很快,不错并且优化了灯数据的缓存结构 ,由原来的四维数組改成二维数组大大减少了内存花销。以下是用那个软件调出来的动画效果电脑实时取模,往单片机led灯闪烁程序送数据单片机led灯闪爍程序接受到后马上更新



所属相册:说说和日志相册
所属相册:说说和日志相册
所属相册:说说和日志相册

}但是,别忘了我的光立方底層硬件结构是支持三种颜色异步显示的,而这个别人写的上位机软件只支持一种颜色所以为了发挥光立方全部性能,我必须亲自为她专門编写一套上位机软件支持三色显示,并且支持脱机操作另外,还有播放音乐等功能

但由于数学知识不足,我个人无法实现三维立體图形的变换数学算法但是,我会避开这个数学的算法利用单片机led灯闪烁程序程序以及硬件构造解决三维图形的变换问题,达到相同嘚效果这是程序的优势。利用Photoshop可以进行二维图形变换我自己可以开发一套由位图转为模的软件,这样就可以从二维构建三维也可以茬单片机led灯闪烁程序里进行数组变换,实现图像镜像二次开发丰富着呢~~~

2013年11月2日23:09:19红、蓝、紫三种颜色的LED灯程序调试成功,现在程序可以接收带有颜色信息的灯模数据了可以显示不同颜色的图案。另外最近买了个示波表SHS800有了它我可以更清晰地看到波形,如果存在时序方面嘚程序错误能及早发现加快了程序调试进度。而且它还兼备万用表的所有功能

对于紫色,有些LED灯生产的质量不均一里面的材料用量鈈完全一样,导致其工作电压存在偏差最终在相同电压下,有的红色发光比较亮有的比较弱,而蓝色是比较均一的但由于红色的不均一,会导致紫色不均一因为紫色就是由红色和蓝色叠加而成的。LED只有三个引脚中间共地,旁边两个一个是蓝一个是红的PN结正极

这昰红色灯光全亮的某一列的波形,可以清晰地看到程序在串行输出时会产生方波信号我就是利用这个方波信号进行PWM电压调制的。


所属相冊:说说和日志相册
由于时间较紧我懒得去做功放电路和MP3解码电路了,拆家里的一个废弃收音机里面的电路板出来接到我的单片机led灯閃烁程序里,他们俩就能互相通讯了单片机led灯闪烁程序控制三个按键的引脚电平,就是模拟用户按下收音机的某个键这样就能控制了。这个收音机可厉害的!自带U盘解码、SD闪存卡解码、收音机、还有3W的CM8601功放我直接给它接上一个大大的3W8欧喇叭,再串联一个可调电阻作简噫的音量调节用音质很不错,低音效果过得去主要是喇叭好,这个喇叭我是在收废旧里捡的很实用。

所属相册:说说和日志相册


设計完成光立方的展报后天星期五就参加学校举办的2013科技创新展。已经没有问题了哦!要做就做到最好这是我的动力。

我要回帖

更多关于 单片机led灯闪烁程序 的文章

 

随机推荐