工程师,一起来DIY音乐播放器!

网友投稿 2019-09-26 14:27

在本项目中,我们来看一下如何用Arduino,Micro SD卡读卡器来制作一个简单的音乐播放器。完成后,你可以用它来播放储存在SD卡中特定格式的音乐文件。

介绍

虽然这是一个精炼的小项目,不需要将其打造成功能强大的音乐播放器,但在Arduino其它支持库的帮助下,你可以结合其它扩展板来实现其它音乐播放上的功能。

一旦你做出来成品电路后,你还可以作出一些小改动为你的项目加入一些特别的音效。

SD卡模块如何与Arduino结合

我们刚才提到过,这个Arduino音乐播放器的重要组成成分是SD卡模块。音频文件会存储在SD卡中,而Arduino则负责读取并传输到扬声器里。

https://cdn.china-scratch.com/timg/190928/142G15552-0.jpg

实物电路图

以下图片为该项目的实物电路图。注意该电路图只展示了Arduino Uno与SD卡模块间的连线,并加入了与Arduino相连的3个按钮,这几个按钮来控制其播放功能,比如播放/暂停,上一曲和下一曲等。

除此之外,还需要将一个扬声器与Arduino相连,电路图中就不做展示了。扬声器或耳机的正极与Arduino的9号引脚相连,负极接地即可。

https://cdn.china-scratch.com/timg/190928/142G25052-1.jpg

所需元件

Arduino Uno(或任何Arduino开发板) x 1

SD卡模块 x 1

MicroSD卡 x 1

扬声器/耳机 x 1

按键 x 3

面包板 x 1

导向若干

Arduino音乐播放器的电路设计

之前有提到过,扬声器应与9号引脚与地相连。除此之外,我们还需要将SD卡模块和3个按键与Arduino相连。

既然Arduino UNO与SD卡模块之间是通过SPI通讯的,所以我们需要照以下方式来进行连接。

SD卡模块的CS引脚与引脚4相连。CS引脚可以与数字I/O引脚相连,但SD卡模块其它的SPI引脚就必须与Arduino上对应的SPI引脚相连。

SD卡模块上的SCK或SPI时钟引脚与Arduino的13号引脚相连。SD卡模块MOSI和MISO引脚应分别与Arduino UNO的11号和12号引脚相连。

电源引脚VCC与GND应和Arduino的+5V和GND相连。

除此之外还需要三个按键进行播放控制。播放/暂停按钮与引脚5相连,下一首按键与引脚6相连,上一首按键与引脚7相连。这些按键在程序类都以配置内部上拉。

音频文件与PCM库的准备

WAV文件

在进一步处理之前,我们还有几件事需要做好。第一件事就是将你的音频/音乐文件转换了WAV格式,也就是后缀名应为.wav。这是因为我们接下来要说的支持库只支持WAV格式的PCM音频。

所以,第一步就是进行格式转换,你可以使用任意音频转换软件或者在线转换。如果想要效果更好的话,可以对格式进行以下设置。

比特位:8位

采样率:16000Hz

声道:单声道

PCM格式:8位PCM unsigned

PCM库

第二件要事就是添加一个特殊的库,这是TMRh20开发的TMRpcm。你可以直接从官方github页面或从Arduino IDE里下架。

在Arduino IDE中,点击库管理器,在其中搜索“TMRpcm”,然后点击安装就可以了。

https://cdn.china-scratch.com/timg/190928/142G2N34-2.jpg

注意:本项目也需要SPI和SD库,但是这些已经属于内置库了。

Arduino音乐播放器的实现

硬件连接后,准备好音频文件,设置好Arduino IDE。你就可以用Arduino实现自己的音乐播放器了。

首先,将microSD卡格式化为FAT,然后将音频文件拷入进去。接下来将SD卡插入SD卡模块的卡槽里,整理好各项连线。

https://cdn.china-scratch.com/timg/190928/142G21525-3.jpg

将Arduino UNO与电脑相连,然后再Arduino IDE中,使用附件的代码。在代码中需要自己做一些改动,在void song() 里面,需要将文件名改为你存入SD卡中那些歌曲的文件名。改动后上传代码即可。

默认情况下,Arduino一经重置便会自动播放第一首歌曲。你可以使用播放/暂停按钮来测试按键是否正常运转。

结论

1.一个简单的DIY Arduino音乐播放器项目,让你用Arduino UNO来播放音频文件。

2.该项目支持WAV文件,并可以控制音频的播放。

3.你可以用额外的放大器来增大输出功率,比如LM386等。

4.你还可以改进项目,比如加入更多音效,提升音质等。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com