
音频放大器模块是一种用于增强音频信号功率的电子模块,它能将微弱的音频电信号(比如从麦克风、播放器输出的信号)进行放大,提升信号的电压和电流强度,让声音变得更大、更清晰 。放大后的音频信号从模块输出,连接到扬声器等负载设备,推动负载发声。注意:UNO开发板性能不够,无法驱动该模块。

| 引脚名称 | 描述 |
|---|---|
| G | GND(电源输入负极) |
| V | VCC(电源输入正极) |
| LRCLK | 左右时钟引脚 |
| BCLK | 位时钟引脚 |
| DIN | 数据输入引脚 |
供电电压: 3.3-5V
连接方式:PH2.0 4P端子线
安装方式:积木固定

不会使用库文件的参考这里:库文件安装使用
库文件下载:点击下载
将下载好的Arduino 库文件解压到桌面后,将其放入Arduino 的libraries文件夹下。
不会安装库文件的请点击这里:参考链接
示例程序(ESP32开发板):点击下载
#define SAMPLE_RATE (44100)
#define I2S_MIC_WS (12)
#define I2S_MIC_SD (14)
#define I2S_MIC_BCK (13)
#define I2S_PORT_0 (I2S_NUM_0)
#define bufferLen (1024)
#define SAMPLE_RATE (44100)
#define bufferLen (1024)
#define I2S_SPK_DIN (25)
#define I2S_SPK_BCLK (27)
#define I2S_SPK_LRCLK (26)
#define I2S_PORT_1 (I2S_NUM_1)
#include "Arduino.h"
#include "driver/i2s.h"
#include "Arduino.h"
#include "driver/i2s.h"
int16_t sBuffer_RX[bufferLen];
size_t bytesIn = 0;
int16_t sBuffer_TX[bufferLen*2];
size_t bytesOut = 0;
void I2s_Mic_Init()
{
i2s_config_t i2s_config_RX{};
i2s_config_RX.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX);
i2s_config_RX.sample_rate = SAMPLE_RATE;
i2s_config_RX.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT;
i2s_config_RX.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT;
i2s_config_RX.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
i2s_config_RX.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1;
i2s_config_RX.dma_buf_count = 8;
i2s_config_RX.dma_buf_len = bufferLen;
i2s_config_RX.use_apll = false;
i2s_driver_install(I2S_PORT_0, &i2s_config_RX, 0, NULL);
i2s_pin_config_t pin_config_RX{};
pin_config_RX.mck_io_num = I2S_PIN_NO_CHANGE;
pin_config_RX.bck_io_num = I2S_MIC_BCK;
pin_config_RX.ws_io_num = I2S_MIC_WS;
pin_config_RX.data_out_num = I2S_PIN_NO_CHANGE;
pin_config_RX.data_in_num = I2S_MIC_SD;
i2s_set_pin(I2S_PORT_0, &pin_config_RX);
i2s_start(I2S_PORT_0);
}
int16_t* Mic_Value()
{
i2s_read(I2S_PORT_0, sBuffer_RX, sizeof(sBuffer_RX), &bytesIn, portMAX_DELAY);
for (int i = 0; i < bufferLen; i++)
{
sBuffer_RX[i] = sBuffer_RX[i]*2;
if (sBuffer_RX[i] > (32767))
sBuffer_RX[i] = (32767);
else if (sBuffer_RX[i] < (-32768))
sBuffer_RX[i] = (-32768);
}
return sBuffer_RX;
}
void I2s_Spk_Init()
{
i2s_config_t i2s_config_TX{};
i2s_config_TX.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX);
i2s_config_TX.sample_rate = SAMPLE_RATE;
i2s_config_TX.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT;
i2s_config_TX.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT;
i2s_config_TX.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
i2s_config_TX.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1;
i2s_config_TX.dma_buf_count = 8;
i2s_config_TX.dma_buf_len = bufferLen;
i2s_config_TX.use_apll = false;
i2s_driver_install(I2S_PORT_1, &i2s_config_TX, 0, NULL);
i2s_pin_config_t pin_config_TX{};
pin_config_TX.mck_io_num = I2S_PIN_NO_CHANGE;
pin_config_TX.bck_io_num = I2S_SPK_BCLK;
pin_config_TX.ws_io_num = I2S_SPK_LRCLK;
pin_config_TX.data_out_num = I2S_SPK_DIN;
pin_config_TX.data_in_num = I2S_PIN_NO_CHANGE;
i2s_set_pin(I2S_PORT_1, &pin_config_TX);
i2s_start(I2S_PORT_1);
}
void Spk_Value(int16_t* sBuffer_RX)
{
for (int i = 0; i < bufferLen; i++)
{
sBuffer_TX[i*2] = sBuffer_RX[i];
sBuffer_TX[i*2+1] = sBuffer_RX[i];
}
i2s_write(I2S_PORT_1, sBuffer_TX, sizeof(sBuffer_TX), &bytesOut, portMAX_DELAY);
}
void setup(){
I2s_Mic_Init();
I2s_Spk_Init();
}
void loop(){
Spk_Value(Mic_Value());
}
示例程序(ESP32-S3开发板):点击下载
示例程序(ESP32开发板-c语言版本):点击下载

示例程序(ESP32-S3开发板-c语言版本):点击下载
Arduino ESP32 测试环境搭建
准备配件:
电路接线图:

ESP32 Python 测试环境搭建
Arduino UNO视频教程:点击查看
ESP32 Python视频教程:
Arduino UNO测试结论:
发现搭配全向麦克风模块,可以实现 “声音采集 - 音频放大 - 声音播放” 的完整音频通路
