• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

(PWM控制)音量電平表電路+PCB源文件+源代碼+上位機等

2015/12/05
9
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

硬件設計.zip

共3個文件

前言:

        Avago(安華高)的ACPL-k30T是一款專為高壓MOSFET驅(qū)動定制的光電MOSFET驅(qū)動器件。該器件包含一個AlGaAs紅外LED輸入級,通過光學手段耦合到輸出檢測電路。檢測電路包含了一個光電二極管陣列與關(guān)斷電路。當輸入LED流過最小10mA電流時光電驅(qū)動電路就會打開。只需要0.8V或是更低的輸入電壓就能關(guān)斷光電驅(qū)動。

        本文介紹的是基于TI的3個TLC5940(16路LED驅(qū)動芯片),5V開關(guān)電源,一個PIC單片機(帶USB通信功能),16個高亮度RGB LED制作而成的RGB LED音量計量器。該設計實際就是我們播放器上面顯示的那個EQ條,這個表通過USB與上位機(window7 或 vista系統(tǒng))連接。能用LED實時顯示當前聲音的電平。

音量電平表實物截圖:

音量電平表電路截圖:

注意:

  • 這個電路中唯一值得留心的地方就是電路圖中靠近晶振的兩個大電容。當TLC5940以PWM調(diào)光的方式驅(qū)動LED時,由于高速高速開關(guān)切換,產(chǎn)生很多噪聲,而這兩個電容有助于降低噪聲。如果沒有它們或許你的PIC單片機會重啟,或者發(fā)生其他糟糕的事。
  • 3片TLC5940級聯(lián),因此這些LED并非以復用的方式連接,每一個LED都是直接受控制的。當然,也可以把代碼加以修改移植,使其能工作在LED控制復用的狀態(tài)下。

固件(Firmware):

這個固件是基于一個作者開發(fā)的軟件。鏈接如下:

https://www.waitingforfriday.com/index.php/Open_Source_Framework_for_USB_Generic_HID_devices_based_on_the_PIC18F_and_Windows

作者在這個軟件的基礎(chǔ)之上加了兩層,底層是TLC5940的驅(qū)動庫,TLC5940是一個16通道的,支持4096級亮度(基于PWM方式,且各通道亮度獨立)的LED驅(qū)動芯片。這個驅(qū)動庫支持單片TLC5940,或者你可以將多片級聯(lián)。理論上來說,你可以通過一片PIC單片機控制(PIC單片機是連接PC機與TLC5940的橋梁)20片TLC5940(意味著你總共有16*20=320個LED),作者這里級聯(lián)了三片TLC5940(共計48通道,16個RGB LED)。

頂層則是RGB LED控制,這一層通過TLC5940驅(qū)動庫實現(xiàn)。包括的功能有LED淡入淡出,顏色平衡,和一堆相當有用的用來控制LED的功能。USB控制端有兩條命令,一條是上位機指定所有的LED亮度(由0~255來表示),第二條命令式用來設定所需的LED淡出時間(庫文件中同樣有淡入時間,但是對電平表來說沒有用到)

上位機軟件:

上位機軟件是用Visual Studio C#2010寫的,兼容Windows 7 和Vista。由于使用的音頻API緣故,這個上位機軟件不能使用在windows XP環(huán)境下(XP不支持這個API)

這個上位機軟件由三個部分組成:

  1. 開源的C#庫,USB generic HID communication(就是上文提到的作者自己開發(fā)的一個軟件)。
  2. 核心的音頻API,由Ray Molenkamp所寫的。這個API相當強大,你可以用它來抓取音軌的信息,并展示在一個LCD,或者其他USB音頻控制的設備。
  3. VU電平表顯示代碼,正如你所見,這個軟件可以進行一堆個性化的設置,你可以設置顯示阻尼(Display damping ,它跟隨音樂跳躍的速率,更大的阻尼使跳躍更緩和,但是有失精準),可以設置淡出速度(fade off ),也可以設置起始和結(jié)束時的顏色(上位機自動調(diào)節(jié)中間顯示時的顏色), ,還可以設置顯示方式,只單向顯示左右聲道的平均值,從中間向兩邊顯示兩個聲道,從兩邊向中間顯示兩個聲道。

自己的想法:

        感覺這個不是太好弄,首先,這個PIC單片機用的人估計不太多,第二作者自己以前編了一個USB上位機,是在這個基礎(chǔ)上開發(fā)的,雖然可以找到作者的源代碼,但是估計不好搞定(我沒有寫過上位機軟件,不太了解,隨便說說的呵呵),而且上位機還只能在Windows7或者Vista下面用。

         畢竟這里PIC單片更主要的功能,個人認為不過是個USB橋接芯片作用。如果是我的話,直接用一個常用的單片機(AVR,8051)來控制TLC5940,然后用串口通信,上位機軟件也寫成串口通信的形式,估計簡單不少,而且如果電腦沒有串口,可以用串口轉(zhuǎn)USB芯片解決,這樣的話可能硬件上面麻煩一點,但是估計軟件開發(fā)簡單(哈哈,這也是我個人的看法,我對上位機軟件很不熟悉)。

          還有就是,它的那個TLC5940芯片比較強大,但是我淘寶了一下,貌似有點貴,十多元一片,貌似ST2221C便宜一些,幾塊錢,功能可以替代,但是引腳不是兼容的。。。意味著要改程序(上位機和單片機)。
結(jié)果這樣一整,就完全本土化了。。。和原來的東西都不一樣(從電路到上位機軟件都改版了)。。。

  • 硬件設計.zip
    下載
    描述:原理圖和PCB源文件,用expressPCB打開
  • 固件.zip
    下載
    描述:固件源代碼(見文檔圖片截圖)
  • 上位機軟件源碼.zip
    下載
    描述:上位機軟件源碼

相關(guān)推薦