这是一个RGB LED音量电平表(实际就是我们播放器上面显示的那个EQ条),这个表通过USB与上位机(window7 或 vista系统)连接。能用LED实时显示当前声音的电平。
硬件电路:
这个项目的硬件电路非常简单明了,这个Demo板包括了:5V开关电源,一个PIC单片机(带USB通信功能),3个TLC5940(16路LED驱动芯片),16个高亮度RGB LED。
这个电路中唯一值得留心的地方就是电路图中靠近晶振的两个大电容。当TLC5940以PWM调光的方式驱动LED时,由于高速高速开关切换,产生很多噪声,而这两个电容有助于降低噪声。如果没有它们或许你的PIC单片机会重启,或者发生其他糟糕的事。
3片TLC5940级联,因此这些LED并非以复用的方式连接,每一个LED都是直接受控制的。当然,也可以把代码加以修改移植,使其能工作在LED控制复用的状态下。
作者在这个软件的基础之上加了两层,底层是TLC5940的驱动库,TLC5940是一个16通道的,支持4096级亮度(基于PWM方式,且各通道亮度独立)的LED驱动芯片。这个驱动库支持单片TLC5940,或者你可以将多片级联。理论上来说,你可以通过一片PIC单片机控制(PIC单片机是连接PC机与TLC5940的桥梁)20片TLC5940(意味着你总共有16*20=320个LED),作者这里级联了三片TLC5940(共计48通道,16个RGB LED)。
顶层则是RGB LED控制,这一层通过TLC5940驱动库实现。包括的功能有LED淡入淡出,颜色平衡,和一堆相当有用的用来控制LED的功能。USB控制端有两条命令,一条是上位机指定所有的LED亮度(由0~255来表示),第二条命令式用来设定所需的LED淡出时间(库文件中同样有淡入时间,但是对电平表来说没有用到)
上位机软件:
上位机软件是用Visual Studio C#2010写的,兼容Windows 7 和Vista。由于使用的音频API缘故,这个上位机软件不能使用在windows XP环境下(XP不支持这个API)
这个上位机软件由三个部分组成:
1.开源的C#库,USB generic HID communication(就是上文提到的作者自己开发的一个软件)。
2.核心的音频API,由Ray Molenkamp所写的。这个API相当强大,你可以用它来抓取音轨的信息,并展示在一个LCD,或者其他USB音频控制的设备。
3.VU电平表显示代码
正如你所见,这个软件可以进行一堆个性化的设置,你可以设置显示阻尼(Display damping ,它跟随音乐跳跃的速率,更大的阻尼使跳跃更缓和,但是有失精准),可以设置淡出速度(fade off ),也可以设置起始和结束时的颜色(上位机自动调节中间显示时的颜色), ,还可以设置显示方式,只单向显示左右声道的平均值,从中间向两边显示两个声道,从两边向中间显示两个声道。
固件
电路图