加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

參賽-使用Arduino制作32頻段音頻(音樂)頻譜分析儀

2020/08/14
2554
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
方塊圖(2)
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

該項(xiàng)目用于使用Arduino制作32頻段音頻(音樂)頻譜分析儀/可視化器。
硬件組件:

手動(dòng)工具和制造機(jī)器:

  • 烙鐵(通用)

該項(xiàng)目用于使用Arduino制作32頻段音頻(音樂)頻譜分析儀。該項(xiàng)目的預(yù)期受眾是任何音頻愛好者,學(xué)生或初學(xué)者,他們對(duì)電子元件,Arduino和C編程有基本的了解。該項(xiàng)目中使用的組件是低成本的項(xiàng)目,易于組裝。
該頻譜分析儀的主要特點(diǎn):

  • 使用易于安裝的庫“arduinoFFT”和“MD_MAX72xx”
  • 支持五種不同的顯示模式,可通過按鈕切換
  • 音頻信號(hào)的左右聲道都是混合的,這樣你就不會(huì)錯(cuò)過任何節(jié)拍
  • 原型使用32x8 LED矩陣顯示器,這可以改變和輕松修改
  • 音頻可以從耳機(jī)輸出或音樂系統(tǒng)/放大器的線路輸出饋送

電阻值不是很嚴(yán)格,您可以選擇任何最接近的值。請(qǐng)確保R1和R2(參考原理圖)具有相同的值。
程序流程圖:

系統(tǒng)描述:
Arduino板(ATmega328P)內(nèi)置模數(shù)轉(zhuǎn)換器ADC),用于將輸入音頻信號(hào)轉(zhuǎn)換為數(shù)字樣本。ADC配置為采樣時(shí)鐘頻率為38.46khz的輸入信號(hào)。這是通過將ADC預(yù)分頻器配置為32來實(shí)現(xiàn)的。采樣頻率為38.64Khz意味著數(shù)字樣本可以再現(xiàn)高達(dá)19.32Kz(奈奎斯特定理)的輸入頻率,這對(duì)于音頻信號(hào)來說已經(jīng)足夠了。
正如我在開始時(shí)提到的,該項(xiàng)目的目的是顯示音頻音樂信號(hào)的頻譜。因此,左右音頻通道混合在一起并饋入ADC的A0模擬輸入。您可以使用音頻分配器電纜,以便您可以將相同的音樂同時(shí)饋送到頻譜分析儀和另一個(gè)放大器(如果需要)。
ADC配置為使用外部參考電壓。在這個(gè)項(xiàng)目中,參考電壓來自Arduino板上的3.3v穩(wěn)壓電源。當(dāng)模擬信號(hào)在零電壓電平之上和之下振蕩時(shí),我們需要在ADC的模擬輸入端產(chǎn)生直流偏置。這可確保ADC輸出不會(huì)截?cái)噍斎胄盘?hào)的負(fù)周期。相同的3.3v穩(wěn)定電壓由兩個(gè)電阻R1和R2分壓,然后饋入模擬輸入以進(jìn)行直流偏置。使用此直流偏置,即使輸入信號(hào)斷開,ADC也會(huì)在輸出中產(chǎn)生512。稍后在代碼中,這個(gè)由DC偏置引起的512被減去,使得讀數(shù)代表實(shí)際的輸入信號(hào)變化。
ArduinoFFT庫是將輸入模擬信號(hào)轉(zhuǎn)換為頻譜的代碼的核心。我發(fā)現(xiàn)這個(gè)庫易于使用,并為該項(xiàng)目生成了最準(zhǔn)確的輸出。Prototype配置為生成64個(gè)樣本,并使用這些樣本進(jìn)行FFT。ArduinoFFT庫可以對(duì)16到128之間的樣本進(jìn)行FFT,這可以在程序中進(jìn)行配置。但arduinoFFT庫計(jì)算速度慢,有128個(gè)樣本,因此我堅(jiān)持64個(gè)樣本中最好的最高。
本項(xiàng)目使用的顯示為32列×8行LED矩陣。MD_MAX72xx庫使顯示控制部件非常容易。該庫提供打開/關(guān)閉該程序中正在使用的列中任意數(shù)量的LED的功能。每個(gè)頻帶的幅度被映射在0到8之間,這取決于每個(gè)列中的LED的相應(yīng)數(shù)量的LED被接通。
該程序提供五種顯示模式,基本上通過在每列的不同位置打開/關(guān)閉LED來實(shí)現(xiàn)。您可以輕松修改/創(chuàng)建不同的模式。這里使用按鈕來改變顯示模式,轉(zhuǎn)動(dòng)顯示圖案移動(dòng)到下一個(gè),最后重置為默認(rèn)模式。按鈕連接到其中一個(gè)數(shù)字輸入,并在每一輪顯示刷新后掃描該輸入。
頻率響應(yīng)
經(jīng)驗(yàn)證,系統(tǒng)能夠響應(yīng)高達(dá)18.6Khz的頻率。

  • arduino_spectrum_analyzer_-_schematic_qg5BGUSN9P.png
    描述:原理圖截圖
  • source_code.ino
    描述:源碼
  • Arduino 32 band audio music spectrum analyzer visualizer.mp4
    描述:演示視頻
  • 原文地址.txt
    描述:原文出處

相關(guān)推薦

電子產(chǎn)業(yè)圖譜