在我们的项目中添加声音或音乐将始终使其看起来很酷,而且听起来更具吸引力。特别是如果您使用的是Arduino,并且有许多可用的引脚,则只需投资额外的SD卡模块和普通扬声器,即可轻松为项目添加声音效果。在本文中,我将向您展示使用Arduino开发板播放音乐/添加声音效果有多么容易。感谢Arduino社区,他们开发了一些库来快速方便地构建它。我们这里也使用IC LM386来放大和消除噪声。
在此项目中,我们将播放存储在SD卡中的.wav音乐文件。我们将对Arduino进行编程,以读取这些.wav文件,并通过LM386音频放大器以语音播放音频。现在,由于此代码只能读取.wav文件,因此从技术上讲,该项目不能称为Arduino Mp3 Player,但是您仍然可以使用它收听歌曲。如果您正在寻找诸如不带SD卡的Arduio音乐播放器之类的简单替代品,则应查看我们之前构建的Arduino旋律播放器。
所需硬件:
- Arduino UNO
- SD卡读卡器模块
- SD卡
- LM386音频放大器
- 10uf电容器(2号)
- 100uf电容器(2号)
- 1K,10K电阻
- 按钮(2个)
- 面包板
- 连接线
准备好您的WAV音频文件:
为了使用Arduino从SD卡播放声音,我们需要.wav格式的音频文件,因为Arduino板可以播放wav格式的特定格式的音频文件。要制作arduino mp3播放器,可以使用很多mp3防护罩,您可以将它们与arduino一起使用。或者在arduino中播放mp3文件,您可以使用一些网站将计算机上的任何音频文件转换为该特定WAV文件。
因此,要将任何音频文件转换为wav格式,请按照以下步骤操作:
步骤1:点击“在线Wav转换器”进入网站。
步骤2: Arduino可以播放以下格式的wav文件。您可以稍后使用这些设置进行修改,但是这些设置是经过实验证明质量最好的。
位分辨率 |
8位 |
采样率 |
16000赫兹 |
音讯频道 |
单核细胞增多症 |
PCM格式 |
PCM无符号8位 |
步骤3:在网站上,单击“选择文件”,然后选择要转换的文件。然后输入以上设置。完成后,在下图中应该看起来像这样
步骤4: 现在,单击“转换文件”,您的音频文件将转换为.Wav文件格式。转换完成后,还将下载该文件。
步骤5:最后格式化SD卡,然后将.wav音频文件保存到其中。在添加此文件之前,请确保格式化它。还要记住音频文件的名称。同样,您可以选择四个音频中的任何一个,并将其保存为名称1、2、3和4(名称不得更改)。我已经转换了四首歌曲,并将它们保存为1.wav,2.wav,3.wav和4.wav,如下所示。
电路和硬件:
此Arduino音频文件播放器的电路图很简单。完整的电路图如下图所示。
众所周知,我们的音频文件已保存到SD卡中,因此我们将SD卡读取器模块与Arduino接口。所述的Arduino和SD卡进行通信使用SPI通信协议。因此,模块如上图所示与Arduino的SPI引脚连接。下表中进一步列出了它。
Arduino的 |
SD卡模块 |
+5伏 |
Vcc |
nd |
nd |
针脚12 |
MISO(主进从出) |
销11 |
MOSI(主输出从站输入) |
销13 |
SCK(同步时钟) |
销4 |
CS(芯片选择) |
现在,Arduino将能够从SD卡读取音乐文件并在9号插针上播放。但是,在9号插针上由Arduino产生的音频信号将听不见很多。因此,我们使用LM386低压音频放大器IC对其进行了放大。
上面显示的放大器设计为增益为200,而Vdd(引脚6)由Arduino的5V引脚供电。如果要增加/减小声音,可以增加/减小提供给该引脚的电压。最高可承受15V电压。在此处了解有关LM386的200增益放大配置的更多信息。
我们还有两个按钮连接到Arduino的引脚2和3。这些开关用于分别播放歌曲的下一首曲目和播放/暂停音乐。我使用这些按钮只是为了展示其功能。您可以在需要时播放歌曲。最后查看演示视频。
您可以将电路完全组装在面包板上,如下图所示
编程Arduino:
一旦我们准备好硬件和SD卡,就可以轻松播放这些歌曲。将卡插入SD卡模块,然后按照以下步骤操作。
步骤1:如前所述,我们将使用一个库来使该项目正常工作。该库的链接在下面给出。单击它,然后选择“克隆或下载”,然后选择以ZIP格式下载。
- TMRpcm库
步骤2:通过选择Sketch-> Include Library-> Add.ZIP Library将此Zip文件添加到您的Arduino IDE中,如下所示,然后选择我们刚刚下载的ZIP文件。
步骤3:在本文结尾给出了arduino音乐播放器项目的完整程序,只需将其复制并粘贴到Arduino程序中即可。现在,单击上载并准备播放音频文件。
该程序具有注释行,因此很容易说明。但是,我还在下面解释了TMRpcm库的功能。
播放音频文件:
您可以使用下面的行在SD卡模块中播放以Wav格式存储的任何音频。
music.play(“ 3.wav”); // object name.play(“ FileName.wav”);
您可以在要触发音频的地方使用此行
暂停音频文件:
要暂停音频文件,您只需拨打以下电话即可。
music.pause(); //objectname.pause();
转发/倒带音频:
没有前进或后退音频文件的直接方法,但是您可以使用以下行在特定时间播放歌曲。可以通过一些其他编程来前进/后退。
music.play(“ 2.wav”,33); //从第33秒开始播放歌曲//objectname.play(“Filename.wav”,以秒为单位);
设置音频质量:
该库为我们提供了两种播放音乐的特质,一种是正常播放,另一种是2倍过采样。
music.quality(0); // Normal Mode music.quality(1); // 2X过采样模式
设置音频音量:
是的,您可以通过软件控制音频的音量。您只需使用下面的行即可设置音量。较高的音乐音量会影响音频质量,因此请尽可能使用硬件控制。
music.setVolume(5); //以第5卷播放歌曲//objectname.setVolume(Volume level);
该Arduino音乐播放器的工作原理:
对Arduino进行编程后,只需按下连接到引脚2的按钮,您的Arduino就会为您播放第一首歌曲(保存为1.wav)。现在,您可以再次按按钮将曲目更改为播放2.wav的下一首歌曲。同样,您可以浏览所有四首歌曲。
您也可以通过按连接到引脚3的按钮来播放/暂停歌曲。按一次以暂停歌曲,然后再次按从停止处播放。观看下面的视频,了解完整的工作原理(或者放松一下自己的歌)。
希望您喜欢这个项目。现在,在项目中使用它们取决于您的创造力。您可以制作口语时钟,语音助手,会说话的机器人,语音警报安全系统等等。让我知道您打算如何在评论部分中使用它,如果在使该功能正常工作时遇到任何问题,可以通过下面的论坛或评论部分与我联系。