html音频从10秒播放至30秒,基于Arduino制作SD卡音乐播放器
一、項目介紹
前面用ATtiny85制作SD卡音樂播放器,本次主要利用Arduino UNO 和SD卡制作音樂播放器。這個播放器不需要添加多余的模塊,只需要SD讀卡器和Arduino UNO開發(fā)板就可以播放音頻文件。遺憾的是我們需要將音頻文件提前轉(zhuǎn)換為wav文件格式,這與ATtiny85制作的SD卡音樂播放器一致。音頻文件轉(zhuǎn)換成wav格式,可遵循以下步驟:
2、推薦的轉(zhuǎn)換格式設(shè)置
Bit Resolution
8 Bit
Sampling Rate
16000 Hz
Audio Channel
Mono
PCM format
PCM unsigned 8-bit
3、在網(wǎng)站上點擊“choose file”,選擇你想要轉(zhuǎn)換的文件。然后按上面的設(shè)置輸入值。操作界面如下:
4、點擊 “Convert File” ,這樣音頻文件就轉(zhuǎn)換器為.wav格式了,下載保存到SD卡。
二、元器件清單
1、Arduino UNO
2、8歐姆 0.25瓦 小喇叭
3、SD卡卡座模塊
4、SD卡
5、連接線
三、電路連接圖
Arduino UNO 與SD卡模塊的引腳連接如下表
Arduino
SD card 模塊
+5V
Vcc
Gnd
Gnd
Pin 12
MISO (Master In Slave out)
Pin 11
MOSI (Master Out Slave In)
Pin 13
SCK (Synchronous Clock)
Pin 4
CS (Chip Select)
Arduino UNO將從SD卡讀取音樂文件,并從9號針腳輸出音頻信號。如果覺得Arduino發(fā)出的音頻信號太小,可將9號引腳接入功放器放大聲音信號,可參考下圖,加入LM386芯片實現(xiàn)音頻放大,這里不再過多贅述。
實物連接圖:圖中還有兩個按鈕開關(guān)連接到Arduino的2號和3號引腳。開關(guān)實現(xiàn)切換下一首的功能和實現(xiàn)播放/暫停功能。
四、庫文件地址
文件下載后,應(yīng)該為.zip文件,不用解壓縮,安裝庫文件可參考下圖操作:
五、程序代碼
/*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è)置音頻播放對象 "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秒開始播放一個文件
}
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)行對比測試。
總結(jié)
以上是生活随笔為你收集整理的html音频从10秒播放至30秒,基于Arduino制作SD卡音乐播放器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机图形学在数学中的应用,计算机图形学
- 下一篇: pe里怎么卸载打印机驱动器 如何在pe系