Omet navegació

Fitxers d'àudio amb un amplificador Adafruit Max 98357A

Fes el muntatge

Fitxer d'àudio + Amplificador + Wemos

Estem usant l'amplificador Adafruit Max 98357A que dona eixides mono de 3W. Ací tens la pàgina amb els pinouts del fabricant.

També usem una targeta SD, de la qual en una  secció anterior em vist com funciona. Posa en la targeta  SD una dotzena de fitxers mp3 amb cançons.

Anem a provar un programa que reprodueix cançons mp3 però abans cal baixar les llibreries següents i posar-les a /home/usuari/arduino/libraries/

les llibreries són:

https://github.com/pschatzmann/arduino-audio-tools
https://github.com/pschatzmann/arduino-libhelix
https://github.com/greiman/SdFat

Les llibreries i el programa són de l'autor: Phil Schatzmann

Prova el programa següent després:

/**
 * @file player-sdfat-i2s.ino
 * @brief see https://github.com/pschatzmann/arduino-audio-tools/blob/main/examples/examples-player/player-sdfat-i2s/README.md
 * 
 * @author Phil Schatzmann
 * @copyright GPLv3

 * Beispielcode Version Maerz2023 getestet von prilchen.de
 * Modificat a l'IES Gabriel Ciscar
 */


#include "AudioTools.h"
#include "AudioLibs/AudioSourceSDFAT.h"
#include "AudioCodecs/CodecMP3Helix.h"


const char *startFilePath="/";
const char* ext="mp3";
AudioSourceSDFAT source(startFilePath, ext);
I2SStream i2s;
MP3DecoderHelix decoder;
AudioPlayer player(source, i2s, decoder);


void printMetaData(MetaDataType type, const char* str, int len){
  Serial.print("==> ");
  Serial.print(toStr(type));
  Serial.print(": ");
  Serial.println(str);
}

void setup() {
  Serial.begin(115200);
  AudioLogger::instance().begin(Serial, AudioLogger::Info); //Només per provar, activeu aquesta línia per veure els detalls al monitor sèrie
  // AudioLogger::instance().begin(Serial, AudioLogger::Warning);  // Activeu aquesta línia durant el funcionament normal amb proves ja fetes
  // setup output
  auto cfg = i2s.defaultConfig(TX_MODE);
  i2s.begin(cfg);

  // setup player
  //source.setFileFilter("*Bob Dylan*");
  player.setMetadataCallback(printMetaData);
  player.begin();
}

void loop() {
player.copy();
Serial.println("Reproductor engegat");
}// Final de programa

Creat amb eXeLearning (Finestra nova)