如何给Arduino项目添加音乐播放功能
(以下教程僅針對Arduino UNO、Arduino Nano等使用Atmel328P為核心的開發板)
一、蜂鳴器播放音樂
????????說起單片機播放音樂,大家第一個想到的應該是無源蜂鳴器或喇叭。( 因無源蜂鳴器的工作原理與揚聲器相同,此處混為一談,但實際使用仍有區別 ),無論是51、Arduino、亦或是STM32,在入門時期都會使用蜂鳴器進行播放音樂。無源蜂鳴器的應用非常廣泛,小到電子賀卡,玩具,大到上世紀的康瑞達電腦,都使用無源蜂鳴器進行發聲或音樂的播放。
在Arduino中,經常使用以下的函數驅動蜂鳴器:
Tone(蜂鳴器引腳, 輸出的頻率);// 在指定的引腳輸出指定的頻率使蜂鳴器發聲 noTone(蜂鳴器引腳); // 停止指定引腳的PWM輸出,使蜂鳴器不發聲對于這用播放音樂的方式:
優點有:
缺點有:
二、MP3模塊播放音樂
????????在今天,國產的MP3模塊已經非常流行了如JQ6500、JQ8900等,使用MP3模塊連接單片機,既可以簡單的播放音樂,又可以控制EQ、音量、隨意暫停播放插播歌曲、查詢歌曲名字、歌曲時長等。他的操作如同老式MP3,只需要將他連接到電腦,存放歌曲即可。
在Arduino中,經常使用以下的函數驅動MP3模塊:
// 使用串口控制 dat = Serial.read(); Serial.write(dat); // IO或單總線方式控制 delay(ms); delayMicroseconds(us); digitalWrite(io, LOW); digitalWrite(io, HIGH);對于這用播放音樂的方式:
優點有:
缺點有:
三、使用解碼器播放音樂
????????使用音頻解碼模塊 + 功放+儲存模塊,這種方法在STM32中比較常見,在低端單片機中并不多見,使用VS1053 + 內存卡模塊進行實時音頻輸出,再經過功放放大推動喇叭,這種方法僅適用于高端單片機,其不僅對單片機性能要求高,對硬件電路設計,和開發者水平同樣有高要求。
????????在Arduino中,使用這種方式驅動代碼復雜,不同型號解碼器驅動方式大不相同,故此處不列出參考代碼。
對于這用播放音樂的方式:
優點有:
缺點有:
四、總結
????????綜合以上
????????在2021年的今天使用蜂鳴器播放音樂,不僅麻煩,需要將音頻文件轉換為頻率文件,還要浪費單片機昂貴的儲存空間(如果使用內存卡,內存卡還需要內存卡模塊,價格就上來了,使用EEPROM或flash,開發者還需要了解如何燒錄這類芯片),冒著開發版燒毀的風險,(給你推薦這種教程的都沒按什么好心);
????????而使用專用的驅動芯片和內存卡進行音頻的播放,意義更多在于演示,無論價格還是資源占用上,亦或是對開發者知識儲備的要求,都不是最優解;
????????使用MP3模塊,價格方面不高也不低,對于知識儲備要求極低。(只要你會拉高拉低單片機IO電平都能上手,這個在入門教程的blink中已經教授給你了)
五、概括
????????蜂鳴器適合播放提示音,價格最低,音質最差,操作麻煩
????????MP3模塊適合播放長短音頻,價格適中,音質中等,操作簡單
????????音頻解碼器適合播放高品質或多聲道音頻,價格昂貴,音質最好,操作復雜
總結
以上是生活随笔為你收集整理的如何给Arduino项目添加音乐播放功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql100个优化技巧_完整篇:10
- 下一篇: 计算机软件专利申请期限,软件发明专利申请