WM8978音频编解模块

WM8978G 全双工音频编解码模块,板载3.5mm耳机接口、3.5mm麦克风接口,支持咪头输入、外接喇叭。
创客 音频 I2S WM8978

示例程序

Arduino示例一:ESP32使用I2S播放MP3音乐

#include <Wire.h>
#include <WM8978.h> /* https://github.com/CelliesProjects/wm8978-esp32 */
#include <Audio.h>  /* https://github.com/schreibfaul1/ESP32-audioI2S */

/* M5Stack Node WM8978 I2C pins */
#define I2C_SDA     11
#define I2C_SCL     10

/* M5Stack Node I2S pins */
#define I2S_BCK      3
#define I2S_WS      5
#define I2S_DOUT     2
#define I2S_DIN     4
#define I2S_MCLK     12

Audio audio;
WM8978 wm8978;

void setup() {
  Serial.begin(115200);

  Wire.begin(I2C_SDA, I2C_SCL);
  delay(100);

  /* Setup wm8978 I2C interface */
  if (!wm8978.begin()) {
    Serial.println("Error setting up dac. System halted");
    while (1) delay(100);
  }
  wm8978.setSPKvol(40); /* max 63 */
  wm8978.setHPvol(32, 32);

  WiFi.begin("xxxxx", "xxxxx");
  while (!WiFi.isConnected()) {
    delay(10);
  }

  /* set i2s pins */
  audio.setPinout(I2S_BCK, I2S_WS, I2S_DOUT, I2S_MCLK);

  Serial.println("Connected. Starting MP3...");
  //audio.connecttohost("http://icecast.omroep.nl/3fm-bb-mp3");
  audio.connecttohost("https://sis-sample-audio.obs.cn-north-1.myhuaweicloud.com/16k16bit.mp3");
}

void loop() {
  audio.loop();
}
注意:
1. 本模块必须设置MCLK引脚;
2. 本示例需要开发板有PSRAM存储;

原理图

imgFile


WM8978 中文手册