极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3875|回复: 1

基于arduino的音乐轮播机

[复制链接]
发表于 2023-2-8 09:47:35 | 显示全部楼层 |阅读模式
本帖最后由 王安安 于 2023-2-8 09:49 编辑

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

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

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


打开foorbar2000后,添加你需要转换的歌曲,然后在歌曲名上右击,选择转换

选择输出格式为.wav,然后点击转换,选择保存目录就可以了

制作让arduino播放的音频文件
首先,我们需要用到一款软件,软件在此下载 tools.rar (1.41 MB, 下载次数: 3401)
然后可以根据你的arduino板子的工作频率选择合适的转换程序
这里我们选择了arduino with 16Mhz
然后可以看到有很多转换模式

这里,我们选择了FullRate@16MHz_Mono这个模式,全速率单声道模式
将你刚刚生成的.wav格式文件拖到这个批处理上

当提示如下图时,说明转换完成了

然后,你会发现新建了一个文件夹,转换好的文件就在里面

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



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 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();
     }
  
    }
  }
}

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 01:58 , Processed in 0.043594 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表