0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用Arduino UNO和SD卡制作音樂(lè)播放器

科技觀察員 ? 來(lái)源:八色木 ? 作者:八色木 ? 2022-04-13 16:45 ? 次閱讀

一、項(xiàng)目介紹

前面用ATtiny85制作SD卡音樂(lè)播放器,本次主要利用Arduino UNO 和SD卡制作音樂(lè)播放器。這個(gè)播放器不需要添加多余的模塊,只需要SD讀卡器和Arduino UNO開發(fā)板就可以播放音頻文件。遺憾的是我們需要將音頻文件提前轉(zhuǎn)換為wav文件格式,這與ATtiny85制作的SD卡音樂(lè)播放器一致。音頻文件轉(zhuǎn)換成wav格式,可遵循以下步驟:

1、進(jìn)入“在線Wav轉(zhuǎn)換”

2、推薦的轉(zhuǎn)換格式設(shè)置

Bit Resolution8 Bit

Sampling Rate16000 Hz

Audio ChannelMono

PCM formatPCM unsigned 8-bit

3、在網(wǎng)站上點(diǎn)擊“choose file”,選擇你想要轉(zhuǎn)換的文件。然后按上面的設(shè)置輸入值。操作界面如下:

poYBAGJWjauAcPTzAACZKn9MDEA310.png

4、點(diǎn)擊 “Convert File” ,這樣音頻文件就轉(zhuǎn)換器為.wav格式了,下載保存到SD卡。

二、元器件清單

1、Arduino UNO

2、8歐姆 0.25瓦 小喇叭

3、SD卡卡座模塊

4、SD卡

5、連接線

三、電路連接圖

pYYBAGJWjaiAEKggAAKv0bBtXa8336.png

Arduino UNO 與SD卡模塊的引腳連接如下表

ArduinoSD card 模塊

+5VVcc

GndGnd

Pin 12MISO (Master In Slave out)

Pin 11MOSI (Master Out Slave In)

Pin 13SCK (Synchronous Clock)

Pin 4CS (Chip Select)

Arduino UNO將從SD卡讀取音樂(lè)文件,并從9號(hào)針腳輸出音頻信號(hào)。如果覺(jué)得Arduino發(fā)出的音頻信號(hào)太小,可將9號(hào)引腳接入功放器放大聲音信號(hào),可參考下圖,加入LM386芯片實(shí)現(xiàn)音頻放大,這里不再過(guò)多贅述。

poYBAGJWjaOAWxfvAAG_D4kS4Q8124.png

實(shí)物連接圖:圖中還有兩個(gè)按鈕開關(guān)連接到Arduino的2號(hào)和3號(hào)引腳。開關(guān)實(shí)現(xiàn)切換下一首的功能和實(shí)現(xiàn)播放/暫停功能。

pYYBAGJWjZ6AcpTxAAJ5_oWjbes380.png

四、庫(kù)文件地址

TMRpcm library

文件下載后,應(yīng)該為.zip文件,不用解壓縮,安裝庫(kù)文件可參考下圖操作:

五、程序代碼

/*Arduino Music Player*/


#include "SD.h" //讀取 SD card 文件
#include "TMRpcm.h" //讀取 音頻播放文件
#include "SPI.h" //讀取 SD card的SPI 文件

#define SD_ChipSelectPin 4   //設(shè)置CS 引腳 4
TMRpcm music; //設(shè)置音頻播放對(duì)象 "music"

int song_number=0;
boolean debounce1=true;
boolean debounce2=true;
boolean play_pause;

void setup(){
music.speakerPin = 9; //設(shè)置音頻輸出針腳 9
Serial.begin(9600); //串口調(diào)試
if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("SD fail");
return;
}

pinMode(2, INPUT_PULLUP); //Button 1 切換音頻文件
pinMode(3, INPUT_PULLUP); //Button 2 播放或暫停
pinMode(3, INPUT_PULLUP); //Button 2 快進(jìn)

music.setVolume(5);  //  設(shè)置音量0 ~7
music.quality(1);    // 設(shè)置 1 或 2x 采樣速度,0為正常值
//music.volume(0);    //  1(高) 0(低)控制音量
//music.play("filename",30); //從30秒開始播放一個(gè)文件
}

void loop(){

if (digitalRead(2)==LOW && debounce1 == true) //Button 1 按下
{
song_number++;
if (song_number==5)
{song_number=1;}
debounce1=false;
Serial.println("KEY PRESSED");
Serial.print("song_number=");
Serial.println(song_number);

if (song_number ==1)
{music.play("1.wav",10);} //從10秒開始播放第一首歌

if (song_number ==2)
{music.play("2.wav",33);} //從33秒開始播放第二首歌

if (song_number ==3)
{music.play("3.wav");} //從開始位置播放第三首歌

if (song_number ==4)
{music.play("4.wav",25);} //從25秒開始播放第四首歌

if (digitalRead(3)==LOW && debounce2 == true) //Button 2 按下
{
music.pause(); Serial.println("PLAY / PAUSE");
debounce2=false;
}

if (digitalRead(2)==HIGH)  //防止誤操作
debounce1=true;

if (digitalRead(3)==HIGH) //防止誤操作
debounce2=true;
}

}

至此基于Arduino UNO的SD卡音頻播放器就完成了,有興趣可將它與基于ATtiny85的SD卡音頻播放器進(jìn)行對(duì)比測(cè)試。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97468
  • 音樂(lè)播放器
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    15774
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6469

    瀏覽量

    187063
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于RTT-LVGL的音樂(lè)播放器設(shè)計(jì)案例

    此次項(xiàng)目主要是基于瑞薩HMI board 開發(fā)板實(shí)現(xiàn)音樂(lè)播放器功能,主要可以實(shí)現(xiàn)sdwav 文件掃描,音樂(lè)
    的頭像 發(fā)表于 09-18 11:07 ?2250次閱讀
    基于RTT-LVGL的<b class='flag-5'>音樂(lè)</b><b class='flag-5'>播放器</b>設(shè)計(jì)案例

    VS1003制作音樂(lè)播放器

    制作思路是: 下面我就按著我的這個(gè)思路講解我是如何制作一個(gè)音樂(lè)播放器的主控芯片STC15W4K48S4 單片機(jī)的供電電路 外圍電路IO口的接法 解碼芯片我們平時(shí)在手機(jī)、電腦上使用的
    發(fā)表于 02-26 10:33

    基于戰(zhàn)艦板的遙控音樂(lè)播放器

    模塊。插上有源音箱電源和戰(zhàn)艦板電源后就可以實(shí)現(xiàn)遠(yuǎn)程控制音樂(lè)播放器播放SD音樂(lè)了。因?yàn)橥V?/div>
    發(fā)表于 07-01 04:35

    【項(xiàng)目分享】教你用Arduino、Micro SD制作一個(gè)簡(jiǎn)單的音樂(lè)播放器

    `在本項(xiàng)目中,我們來(lái)看一下如何用Arduino,Micro SD讀卡來(lái)制作一個(gè)簡(jiǎn)單的音樂(lè)
    發(fā)表于 09-27 17:20

    基于Arduino UNO控制板的語(yǔ)音播放器設(shè)計(jì)

    案例主控板如不做特殊說(shuō)明的話,均默認(rèn)是Arduino UNO控制板。本次實(shí)驗(yàn)以UNO發(fā)送串口協(xié)議控制語(yǔ)音播放器播放歌曲,語(yǔ)音
    發(fā)表于 07-30 08:06

    Arduino UNO控制板發(fā)送串口協(xié)議是如何控制語(yǔ)音播放器播放歌曲的

    Arduino UNO控制板的硬件特性有哪些呢?Arduino UNO控制板發(fā)送串口協(xié)議是如何控制語(yǔ)音播放器
    發(fā)表于 11-08 07:41

    Arduino按鍵控制MP3模塊隨機(jī)播放音樂(lè)的方法

    )使用主要器件1、Arduino Uno控制板2、YX5300 MP3音樂(lè)模塊3、SD4、讀卡
    發(fā)表于 02-15 07:34

    如何使用Arduino和MicroSD讀卡/模塊制作簡(jiǎn)易音樂(lè)播放器

    使用Arduino Uno制作自己的音樂(lè)播放器是一個(gè)令人興奮的小項(xiàng)目。這個(gè)項(xiàng)目不一定需要是一個(gè)強(qiáng)大的音樂(lè)
    的頭像 發(fā)表于 07-29 11:04 ?1.6w次閱讀

    使用Arduino和DFPlayer迷你MP3播放器模塊制作帶有LCD的MP3播放器

    今天,我們將使用Arduino和DFPlayer迷你MP3播放器模塊制作帶有LCD的MP3播放器。 硬件組件: Arduino Nano R
    的頭像 發(fā)表于 12-07 09:28 ?8476次閱讀

    基于51單片機(jī)的音樂(lè)播放器制作

    基于51單片機(jī)的音樂(lè)播放器制作方法。
    發(fā)表于 05-28 10:44 ?113次下載

    基于Labview制作音樂(lè)播放器源碼分享

    基于Labview制作音樂(lè)播放器源碼分享
    發(fā)表于 12-01 10:07 ?70次下載

    基于Arduino音樂(lè)播放器設(shè)計(jì)

    厭倦了呆板的音響設(shè)備,那就動(dòng)手制作一個(gè)音樂(lè)播放器吧。本項(xiàng)目可播放WAV格式音樂(lè),用戶只需簡(jiǎn)單的接線和焊接技能即可完成
    發(fā)表于 03-25 11:27 ?6176次閱讀
    基于<b class='flag-5'>Arduino</b>的<b class='flag-5'>音樂(lè)</b><b class='flag-5'>播放器</b>設(shè)計(jì)

    如何用ATTINY45制作SD音樂(lè)播放器

    這是一個(gè)使用 ATtiny 8針MCU來(lái)制作的很簡(jiǎn)單的SD音頻播放器。可以支持ATtinyX5系列(25/45/85)三款A(yù)VR微控制,
    的頭像 發(fā)表于 04-13 16:49 ?3079次閱讀
    如何用ATTINY45<b class='flag-5'>制作</b><b class='flag-5'>SD</b><b class='flag-5'>卡</b><b class='flag-5'>音樂(lè)</b><b class='flag-5'>播放器</b>

    Arduino UNO構(gòu)建音樂(lè)播放器

    電子發(fā)燒友網(wǎng)站提供《Arduino UNO構(gòu)建音樂(lè)播放器.zip》資料免費(fèi)下載
    發(fā)表于 01-03 11:41 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b>構(gòu)建<b class='flag-5'>音樂(lè)</b><b class='flag-5'>播放器</b>

    使用Arduino UNO播放SD中的Midi文件

    電子發(fā)燒友網(wǎng)站提供《使用Arduino UNO播放SD中的Midi文件.zip》資料免費(fèi)下載
    發(fā)表于 01-31 10:04 ?1次下載
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b><b class='flag-5'>播放</b><b class='flag-5'>SD</b><b class='flag-5'>卡</b>中的Midi文件