Untitled

 avatar
unknown
plain_text
5 months ago
1.2 kB
3
Indexable
#include <Arduino.h>
#include <AudioFileSourceLittleFS.h>
#include <AudioGeneratorWAV.h>
#include <AudioOutputI2S.h>
#include <FS.h>
#include <LittleFS.h>

// Audio objects
AudioGeneratorWAV *wav;
AudioFileSourceLittleFS *file;
AudioOutputI2S *out;

// I2S pin definitions
#define I2S_BCLK 26    // Bit clock pin
#define I2S_LRC 25     // Left-right clock pin
#define I2S_DOUT 22    // Data output pin

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

  Serial.println("Initializing LittleFS...");
  if (!LittleFS.begin()) {
    Serial.println("LittleFS Mount Failed");
    return;
  }

  Serial.println("Setting up I2S...");
  out = new AudioOutputI2S();
  out->SetPinout(I2S_BCLK, I2S_LRC, I2S_DOUT); // Configure I2S pins
  out->SetGain(0.8); // Adjust audio volume

  Serial.println("Initializing WAV generator...");
  file = new AudioFileSourceLittleFS("/sample.wav"); // Load WAV file
  wav = new AudioGeneratorWAV();
  if (!wav->begin(file, out)) {
    Serial.println("Failed to start WAV playback");
  }
}

void loop()
{
  if (wav->isRunning()) {
    if (!wav->loop()) {
      wav->stop();
      Serial.println("WAV playback finished.");
    }
  } else {
    delay(1000);
  }
}
Editor is loading...
Leave a Comment