周末没事,找出来之前购买的max98357音频功放和小喇叭,主控还是熟悉的DFRobot Firebeetle ESP32E。
主控ESP32:

工作电压:3.3V输入电压:3.3V~5.5V支持USB充电处理器:Tensilica LX6双核处理器(一核处理高速连接;一核独立应用开发)主频:240MHzSRAM:520KBFlash:32MbitWi-Fi标准:FCC/CE/TELEC/KCCWi-Fi协议:802.11 b/g/n/d/e/i/k/r (802.11n,速度高达150 Mbps),A-MPDU和A-MSDU聚合,支持0.4us防护间隔频率范围:2.4~2.5 GHz蓝牙协议:符合蓝牙V4.2 BR/EDR和BLE标准蓝牙音频:CVSD和SBC音频频率范围:2.4~2.5GHz片上时钟:40MHz晶振、32.768KHz晶振数字I/O:x18模拟输入:x11SPI x1I2C x1I2S x1RGB_LED:WS2812
功放模块MAX98357是一款高品质、低功耗的立体声音频放大器芯片,由Maxim Integrated生产(现在的ADI公司已经收购了Maxim)。该芯片具有内置的数字音频接口(I2S),可与各种数字音频设备配合使用。MAX98357能够提供高达3.2W的输出功率,并具有优秀的失真和噪声性能。

MAX98357的特点输出功率:
4欧时为3.2W,THD为10%
8欧时为 1.8W,THD为10%I2S采样率:8KHz-96kHZD类放大器 增益可选:3dB/6dB/9dB/12d B/15dl无需主控时钟 ( MCLK)即插即用:只需单电源供电,即可自动配置35种不
同的时钟和128种数字音频格式。适用于Raspberry Pi, Arduino以及ESP32等具
有I2S音频输出的微控制器或开发板系统
系统框图:

连线说明:
I2S Module VCC to ESP32-E 3V3
I2S Module GND to ESP32-E GND
I2S Module LRC to ESP32-E 26/D3
I2S Module BCLK to ESP32-E 25/D2
I2S Module DIN to ESP32-E 14/D6
I2S Module SPK+ to Speaker power +
I2S Module SPK- to Speaker power -


代码:
#include <DFRobot_MAX98357A.h>
DFRobot_MAX98357A amplifier; // instantiate an object to control the amplifier
void setup(void)
{
Serial.begin(115200);
/**
* @brief Init function
* @param btName - The created Bluetooth device name
* @param bclk - I2S communication pin number, serial clock (SCK), aka bit clock (BCK)
* @param lrclk - I2S communication pin number, word select (WS), i.e. command (channel) select, used to switch between left and right channel data
* @param din - I2S communication pin number, serial data signal (SD), used to transmit audio data in two's complement format
* @return true on success, false on error
*/
while( !amplifier.begin(/*btName=*/"bluetoothAmplifier", /*bclk=*/GPIO_NUM_25, /*lrclk=*/GPIO_NUM_26, /*din=*/GPIO_NUM_14) ){
Serial.println("Initialize failed !");
delay(3000);
}
Serial.println("Initialize succeed!");
}
void loop(void)
{
String Title, Artist, Album;
/**
* @brief Get "metadata" through AVRC command
* @param type - The type of metadata to be obtained, and the parameters currently supported:
* @n ESP_AVRC_MD_ATTR_TITLE ESP_AVRC_MD_ATTR_ARTIST ESP_AVRC_MD_ATTR_ALBUM
* @return The corresponding type of "metadata"
* @note Return "NULL" if timeout occurs when requesting metadata
*/
Title = amplifier.getMetadata(ESP_AVRC_MD_ATTR_TITLE);
if(0 != Title.length()){
Serial.print("Music title: ");
Serial.println(Title);
}
Artist = amplifier.getMetadata(ESP_AVRC_MD_ATTR_ARTIST);
if(0 != Artist.length()){
Serial.print("Music artist: ");
Serial.println(Artist);
}
Album = amplifier.getMetadata(ESP_AVRC_MD_ATTR_ALBUM);
if(0 != Album.length()){
Serial.print("Music album: ");
Serial.println(Album);
}
delay(3000);
}编译,烧录代码。
打开蓝牙,找到名称为bluetoothamplifer的广播名称,点击配对连接。

串口打印:

歌曲可以正常播放。播放视频见附件。
现在的各种资料很多,闲下来可以做一些有意思的小制作还是很有趣的。
我要赚赏金
