如题,如何控制64个LED???
问题如下:
控制64路 PWM实现对LED亮度的控制,不知道有没有简单的低成本的方法实现?
好难得一个问题困扰着我。。。
下面我先说下自己的想法,不对的还请多多指点。(看不看,其实都没有太大的影响。)
一、前言
LED就是二极管,开关变量,用一个IO 就可以控制LED。
(1)静态
如果IO资源不紧缺的情况下,一个IO控制一颗LED还是可以接受的,这个也就是所谓的静态驱动LED的方法。
有静态,当然会用动态。
(2)动态
如果IO资源本来就紧缺,或者要控制的LED的个数远多余IO的个数。用一个IO来控制一颗LED,显然浪费了IO的资源。
就利用了人眼的视觉暂留,来动态扫描控制LED,这个很常见,其实显示屏从某种意义上说也是动态扫描。
二、控制64个单色LED
控制64个单色的LED,可能不是一件的难事,无非是,锁存器、译码器、移位寄存器等.
下图就是一个简单的控制,如果有什么不对的, 或者有更好地方案,还请不吝赐教。THX。。。
<ignore_js_op>
图1:控制64个单色LED框架图
PWM(脉宽调制)
这里还要介绍一个东西PWM调光,就是通过来控制 通电时间 和 断开时间,来让LED有不同亮度感觉。
就像一个LED你给3V的和给5V的电是亮度不一样的,这个给不同的电压来改变亮度属于模拟的解决方法。
这里谈的说MCU,数字上面,用的一般是PWM来调节亮度,因为通电和断开的,时间频率很高,让人眼感觉不出来停顿,就会感觉LED的亮度发生了不同的变化。PWM调光,从某种意义上,也可以理解为数字实现模拟的方法,不同的通电的时间片段,形成的能量,在时间上积分,得到的也就是不同的电压值。但事实并不是不同的电压值,除非你加了滤波器,对波形积分。
控制64路PWM实现不同的灰度这个就是问题,好难得一个问题,不知道有没有简单的方法解答?
三、三色LED
<ignore_js_op>
图2:三色LED
上面说的是单色的,当然有一个很神奇的叫做四脚 三色LED,如果对三个引脚 用PWM控制,可以组合出很多种颜色,就成了全彩LED。
引脚凭空又变成了 3倍,不过是把上面的电路复制两份就行了。
但是要控制 64*3路 PWM,是更难了。
希望大家不吝赐教。。。。
四、为何会问这个问题
到这里大家可能猜到了,我是不是要做立方体。。那种很炫的LED立方体。。其实并不是,我并不喜欢那个LED cube 更不感觉它很炫。
我是一个从小就没学过音乐的人,没有一点音乐的素养。
去年,做一款Android戏的时候,界面、控制,都设计好了,唯独少了点音效,想学学音乐,配点音效。
结果失败,只好用了别人的音乐,总感觉这是盗窃行为,不好。
于是乎,买了个电子琴,想学一学,受点音乐的熏陶,然后就没有然后了,太难。
暑假萌生了,想在琴键上左上LED,,然后LED会按事先编好的程序,亮起和熄灭。
这样,可以照着LED,来学习弹琴。就想改装一下这个54键的电子琴。
根据不同的颜色来知道哪个手指去按那个按键,虽然很傻瓜,但是可能会对弹琴有点好处。
大致如下(其实BT和MCU可以综合在一起的,如果控制LED的消耗不是太大。)
图3:设计图
我的梦想就是在我结婚的时候,能在婚礼的现场,弹一首《克罗地亚狂想曲》,给她画一副素描。
现在看来是不太可能了,我终究是个只会写代码的。。。不过如果代码写的好,貌似还是可以实现的。
说了那么多废话,其实后面由于时间关系这个就停滞了。
现在又想做一做试一试,早在年初,才发现原来有这个产品了。
图4:智能钢琴