一、项目介绍

前面用ATtiny85制作SD卡音乐播放器,本次主要利用Arduino UNO 和SD卡制作音乐播放器。这个播放器不需要添加多余的模块,只需要SD读卡器和Arduino UNO开发板就可以播放音频文件。遗憾的是我们需要将音频文件提前转换为wav文件格式,这与ATtiny85制作的SD卡音乐播放器一致。音频文件转换成wav格式,可遵循以下步骤:

2、推荐的转换格式设置

Bit Resolution

8 Bit

Sampling Rate

16000 Hz

Audio Channel

Mono

PCM format

PCM unsigned 8-bit

3、在网站上点击“choose file”,选择你想要转换的文件。然后按上面的设置输入值。操作界面如下:

4、点击 “Convert File” ,这样音频文件就转换器为.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发出的音频信号太小,可将9号引脚接入功放器放大声音信号,可参考下图,加入LM386芯片实现音频放大,这里不再过多赘述。

实物连接图:图中还有两个按钮开关连接到Arduino的2号和3号引脚。开关实现切换下一首的功能和实现播放/暂停功能。

四、库文件地址

文件下载后,应该为.zip文件,不用解压缩,安装库文件可参考下图操作:

五、程序代码

/*Arduino  Music Player */

#include "SD.h"     //读取 SD card 文件

#include "TMRpcm.h"     //读取 音频播放文件

#include "SPI.h"     //读取 SD card的SPI 文件

#define SD_ChipSelectPin 4     //设置CS 引脚 4

TMRpcm music;     //设置音频播放对象 "music"

int song_number=0;

boolean debounce1=true;

boolean debounce2=true;

boolean play_pause;

void setup(){

music.speakerPin = 9; //设置音频输出针脚 9

Serial.begin(9600);     //串口调试

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 快进

music.setVolume(5);    //   设置音量0 ~7

music.quality(1);        //  设置 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卡音频播放器进行对比测试。

html音频从10秒播放至30秒,基于Arduino制作SD卡音乐播放器相关推荐

  1. 基于FPGA的SD卡音乐播放器之完结篇

    基于FPGA的SD卡音乐播放器之完结篇 目录 前言 一.WAV格式 二.FIFO模块 三.音频-SD卡交互模块 四.锁相环模块 五.按键去抖模块 六.按键控制模块 总结 前言 前面已经介绍了WM873 ...

  2. 基于FPGA的SD卡音乐播放器之WM8731篇

    基于FPGA的SD卡音乐播放器之WM8731篇 目录 前言 一.I2C驱动模块 二.WM8731寄存器配置模块 三.WM8731时钟生成模块 四.音频发送模块 总结 前言 这个题目是我之前7月初做的一 ...

  3. FPGA实现SD卡音乐播放

    1 前面我们已经学习了 SD 卡的数据读写和 WM8731 语音录放的功能, 那这章我们把这两部分结合起来做一个音乐播放器吧! 本实验把存储在 SD 卡的音频文件(.wav)读取后传输到WM8731 ...

  4. [DIY]给孩子做个音乐盒(arduino制作LCD显示音乐播放器)

    一次带孩子去商场,他对一个用木盒做的,LCD显示的音乐盒非常感兴趣,玩了半天,于是便想给孩子做一个音乐盒. 完成效果图: 材料: Arduinouno USB供电音箱(或8欧姆喇叭,10欧姆电阻,10 ...

  5. 【紫光同创国产FPGA教程】【第十二章】SD卡音乐播放例程

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G/PG ...

  6. 开机启动win7,自动启动突出显示的选择之前的秒数有30秒

    遇到问题:重装了系统,win7开机,会"显示自动启动突出显示的选择之前的秒数有30秒":这时候的30秒显得时间太长,一般都不会愿意等. 解决问题:一开始还以为是bios里面修改设置 ...

  7. PHP制作音乐播放器制作教案,js制作简单的音乐播放器的示例代码

    一.设计目的: 1.随着现在人民生活质量的提高同样伴随着生活压力的增大,越来越多的人追求越来越多的娱乐,其中一种娱乐方式就是音乐,于是突发奇想,制作一个音乐播放器. 2.主要功能: 1 支持循环自动播 ...

  8. 基于微信小程序的音乐播放器设计

    目 录 1绪论 1 1.1选题背景及意义 1 1.2发展现状 1 1.2.1什么是微信小程序 1 1.2.2小程序市场的现状 4 1.3研究主要内容 4 2系统技术 5 2.1 Java语言 5 2. ...

  9. [嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计【2018年给力项目】

    [嵌入式Linux项目实战开发]基于QT4.7.4的音乐播放器实现与设计[2018年给力项目]是[创科之龙]团队aiku嵌入式视频教程系列制作的现有的音乐播放器. 主要功能实现: 1.新建工程,基类选 ...

最新文章

  1. Git创建本地分支并关联远程分支
  2. CentOS 6.5安全加固及性能优化
  3. python中requests库的用途-python中requests库session对象的妙用详解
  4. CTFshow php特性 web125
  5. Android提权漏洞CVE-2014-7920CVE-2014-7921分析
  6. 配置虚拟机 Linux 静态IP
  7. Android Studio之编译t提示Invoke-customs are only supported starting with Android O (--min-api 26)
  8. openssh arm linux 编译,openssh编译安装到ARM嵌入式系统中
  9. bbs.php168,PHP168 下载安装教程
  10. 【CUDA编程】nsight compute和nsight system的使用
  11. oracle 同义词表结构,Oracle 数据库的同义词+视图
  12. JavaScript 数组(二)数组练习
  13. 麻雀虽小五脏俱全--一个小项目的总结
  14. echarts年龄饼图_ECharts中饼图的操作
  15. 【JS】使用jQuery制作图片手风琴效果
  16. 读书笔记:《人类简史:从动物到上帝》
  17. 基于HMM的拼音转汉字程序
  18. vue将链接转为二维码的方法即插件
  19. NBA得分后卫阅兵:科比榜首麦蒂第9 小AI获至高赞誉
  20. 2021 年 9 项优秀在线电话会议服务比较(带免费选项)

热门文章

  1. wxWidgets:窗口 ID
  2. boost::hana::detail::type_foldr1用法的测试程序
  3. boost::hana::test::TestLogical用法的测试程序
  4. boost::histogram::detail::accumulator_traits用法的测试程序
  5. boost::hana::minimum.by用法的测试程序
  6. Boost CRC的测试程序
  7. Boost:GPU上的2D图像中绘制最终的随机“walk”,并使用OpenCV进行显示
  8. ITK:重新运行管道不断变化的最大可能的地区
  9. DCMTK:DIMSE状态代码和类的测试程序
  10. VTK:图片之ImageGradientMagnitude