diy 音乐播放器很有趣,我们之前使用 arduino和 专用 mp3 模块构建了一些音乐播放器。现在我们正在使用 esp32 构建一个有趣的音频播放器,您只需在 esp32 上连接一个额外的扬声器即可在其中播放音效。在这里,我们将使用lm386 和一个带有 esp32 的扬声器来播放音乐文件。音频输出可能不大,但此应用程序显示了 esp32 板播放音频文件的能力。
所需组件
esp32
lm386 放大器模块
8欧姆扬声器
跳线
电路原理图
esp32音乐播放器的电路图如下-
要在 esp32 上播放声音,我们需要一个扬声器。扬声器通过 lm386音频放大器模块连接。amplifier module 的 vcc 和 gnd 引脚连接到 esp32 的 vin 和 gnd,而 amplifier 模块的 in 引脚连接到 esp32 的 gpio 25 引脚。gpio 25 是 2 个 dac(数模转换器)引脚之一。
esp32 音乐播放器的完整设置如下所示:
lm386 是一款音频放大器 ic,您可以通过以下链接了解更多关于 lm386 的信息。
准备好音频文件
要在 esp32 板上播放音频声音,我们需要.wav格式的音频文件,因为 esp32 只能播放.wav格式的音频文件。
所以第一步是获取你想在 esp32 上播放的文件。之后,下载并安装audacity audio editor app。此应用程序将用于更改文件类型、采样率和其他属性。
安装完成后,打开 audacity 应用程序,然后转到文件 》 打开并选择要编辑的音频文件。
首先需要改变的是采样率。对于在 esp32 上播放音频文件,8000 到 16000 的采样率会很好,因为 esp32 没有太多内存。因此,将 project rate 更改为 16000。
之后,导航到文件 》 导出 》 导出为 wav以将音频文件保存为.wav格式。
现在在下一个窗口中,选择wav (microsoft)作为文件类型,选择unsigned 8-bit pcm作为编码格式,然后单击保存。
现在我们需要一个 hex editor 应用程序来为音频文件生成 hex 代码。因此,从给定的链接下载并安装十六进制编辑器 (hxd) 。之后,打开应用程序,然后转到文件 》 打开 并打开.wav 文件。这将为.wav 文件生成十六进制代码。
然后使用ctrl+a 选择完整的代码,然后转到编辑 》 复制为 》 c以复制 c 语言格式的代码。
然后将此代码粘贴到 arduino ide 中。
代码说明
非接触式esp32 音频播放器的完整代码在页面末尾给出。在这里,我们将解释代码的一些重要部分。在这个程序中,我们将使用来自xtronical的xt dac 音频库。xt dac 音频库可以从这里下载。
因此,像往常一样,通过包含所有必需的库来启动代码。sounddata.h文件包含要播放的 .wav 文件的十六进制代码。
#include sounddata.h#include xt_dac_audio.h
在下一行中,创建一个xt_wav_class类型的对象, dac 音频类使用该对象将.wav数据作为参数传递。dacaudio,主要播放器类对象,其中 25 是连接放大器引脚的 dac 引脚编号。
xt_wav_class 声音(样本);xt_dac_audio_class dacaudio(25,0);
在setup()函数中,以 115200 的波特率初始化串行监视器以进行调试。
无效设置(){ 序列号.开始(115200);
在loop()函数中,用数据填充声音缓冲区并检查声音是否正在播放,如果没有,则在循环中播放声音。
无效循环(){ dacaudio.fillbuffer(); 如果(声音。播放==假) dacaudio.play(&sound); serial.println(democounter++); }
测试 esp32 音频播放器
代码准备好后,通过 lm386 或任何其他放大器模块将扬声器连接到 esp32 的 gpio 25。现在将 esp32 连接到笔记本电脑并上传代码。上传代码后,esp32 开始播放音频。使用放大器模块的电位器可以改变音质。
#include sounddata.h
#include xt_dac_audio.h
xt_wav_class 声音(样本);
xt_dac_audio_class dacaudio(25,0);
uint32_t democounter=0;
无效设置(){
序列号.开始(115200);
}
无效循环(){
dacaudio.fillbuffer();
如果(声音。播放==假)
dacaudio.play(&sound);
serial.println(democounter++);
}
变频器工业洗衣机行业系统方案特点
ADI在线研讨会:光谱分析技术的应用与信号链介绍
固态硬盘的耐用性受多方面的影响,如何能让它更加长寿?
三星正在与Sprint,Verizon和AT&T合作共同开发5G手机
通用汽车和大众集团正将投资重点放在全电动汽车上
基于ESP32构建的音频播放器
人工智能到来之后 未来势必是一个大变革的时代
精密点焊机如何选择电极材料
荣耀V40官宣搭载GPU Turbo X图形加速引擎
庆科信息技术EMW3165简介
喜讯!全视通再获行业认可,荣膺数字医疗-医院管理价值奖
智慧能源赋能智能制造,爱博精电精电助力科伦药业智慧工厂建设!
can记录仪使用时如何应对震动问题?
PGA202失调电压校正电路
Google现在宣布了一种新的人工智能模型
LW36-126/3150六氟化硫断路器
bv和bvr电线有什么区别?bv和bvr电线的区别?
明纬电源——25W恒功率LED驱动器(XLG-25系列)
SSS1700高性价比24BIT96KUSB音频芯片
家电行业累计同比增长15.9%:行业发展“三大步”