王安安 发表于 2023-2-8 09:47:35

基于arduino的音乐轮播机

本帖最后由 王安安 于 2023-2-8 09:49 编辑

首先,要按照下面的链接搭建硬件https://www.geek-workshop.com/thread-2611-1-1.html
具体方法我就不搬运了

第二步就是软件同样也是要添加这个SimpleSDAudio库
库文件:

第三步就是转码
首先你需要把多个音频文件转换成.wav格式,我们用到了foorbar2000这个软件,大家也可以使用其他转换软件注意:一定是多个(单个也行)

http://image.geek-workshop.com/forum/201211/25/165213ggmzzc8fllml0cln.jpg
打开foorbar2000后,添加你需要转换的歌曲,然后在歌曲名上右击,选择转换
http://image.geek-workshop.com/forum/201211/25/165216q1cubgu1t4ac1ums.jpg
选择输出格式为.wav,然后点击转换,选择保存目录就可以了

制作让arduino播放的音频文件
首先,我们需要用到一款软件,软件在此下载 https://www.geek-workshop.com/static/image/filetype/rar.gif tools.rar (1.41 MB, 下载次数: 3401)
然后可以根据你的arduino板子的工作频率选择合适的转换程序
这里我们选择了arduino with 16Mhz
然后可以看到有很多转换模式
http://image.geek-workshop.com/forum/201211/25/173300eyd3fch7rhgxfhxi.jpg
这里,我们选择了FullRate@16MHz_Mono这个模式,全速率单声道模式
将你刚刚生成的.wav格式文件拖到这个批处理上
http://image.geek-workshop.com/forum/201211/25/173531nthdtszd6dtdh5hh.jpg
当提示如下图时,说明转换完成了
http://image.geek-workshop.com/forum/201211/25/173528q11tjcq6e7nlmscv.jpg
然后,你会发现新建了一个文件夹,转换好的文件就在里面

将文件放到SD卡中
首先,你需要将SD卡格式化成FAT格式,然后将刚才的文件放到SD卡根目录下,注意,文件名不能使用中文名



最后一步就是写程序,源码和使用说明我附在下面

王安安 发表于 2023-2-8 09:52:50

#include <SimpleSDAudio.h>

void setup()
{
// If your SD card CS-Pin is not at Pin 4, enable and adapt the following line:
// SdPlay.setSDCSPin(10);

// Init SdPlay and set audio mode
if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO)) {
    while(1); // Error while initialization of SD card -> stop.
}
int melody[] = {};//你的音频文件名填好,例:{"ABC.AFM","ABCD.AFM"}
int b=0;
// Select file to play;
       if(!SdPlay.setFile(melody)) {
       while(1);
      }
SdPlay.play();
while(1){
    if(!SdPlay.isStopped()){
      SdPlay.worker();
    }
    if(SdPlay.isStopped()){
      b=b+1;
       if(!SdPlay.setFile(melody)) {
       while(1);
      }
SdPlay.play();
   if(b==){
//上面的b==要填你的歌曲数量减去1
      b=0;
      SdPlay.play();
   }

    }
}
}
页: [1]
查看完整版本: 基于arduino的音乐轮播机