Тема: MP3 плеер +arduino+oled1.3"

Доброго Всем времени суток.
Пытаюсь найти схему и скетч MP3 плеера для установки в корпус самодельного усилителя.Китайские декодеры не интересны (эстетически). Есть такой вот проект:

///              MP3 PLAYER PROJECT
/// http://educ8s.tv/arduino-mp3-player/
//////////////////////////////////////////


#include "SoftwareSerial.h"
SoftwareSerial mySerial(10, 11);
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00 //Returns info with command 0x41 [0x01: info, 0x00: no info]

# define ACTIVATED LOW

int buttonNext = 2;
int buttonPause = 3;
int buttonPrevious = 4;
boolean isPlaying = false;



void setup () {

pinMode(buttonPause, INPUT);
digitalWrite(buttonPause,HIGH);
pinMode(buttonNext, INPUT);
digitalWrite(buttonNext,HIGH);
pinMode(buttonPrevious, INPUT);
digitalWrite(buttonPrevious,HIGH);

mySerial.begin (9600);
delay(1000);
playFirst();
isPlaying = true;


}



void loop () {

if (digitalRead(buttonPause) == ACTIVATED)
  {
    if(isPlaying)
    {
      pause();
      isPlaying = false;
    }else
    {
      isPlaying = true;
      play();
    }
  }


if (digitalRead(buttonNext) == ACTIVATED)
  {
    if(isPlaying)
    {
      playNext();
    }
  }

   if (digitalRead(buttonPrevious) == ACTIVATED)
  {
    if(isPlaying)
    {
      playPrevious();
    }
  }
}

void playFirst()
{
  execute_CMD(0x3F, 0, 0);
  delay(500);
  setVolume(20);
  delay(500);
  execute_CMD(0x11,0,1);
  delay(500);
}

void pause()
{
  execute_CMD(0x0E,0,0);
  delay(500);
}

void play()
{
  execute_CMD(0x0D,0,1);
  delay(500);
}

void playNext()
{
  execute_CMD(0x01,0,1);
  delay(500);
}

void playPrevious()
{
  execute_CMD(0x02,0,1);
  delay(500);
}

void setVolume(int volume)
{
  execute_CMD(0x06, 0, volume); // Set the volume (0x00~0x30)
  delay(2000);
}

void execute_CMD(byte CMD, byte Par1, byte Par2)
// Excecute the command and parameters
{
// Calculate the checksum (2 bytes)
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2);
// Build the command line
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge,
Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte};
//Send the command line to the module
for (byte k=0; k<10; k++)
{
mySerial.write( Command_line[k]);
}
}

но в нем не подцеплен экран и функционал у DFplayer Mini намного больше, регулирование громкости, работа с плей листом и т.д.
В общем очень бы хотелось чтобы знающий человек посмотрел на это.
Спасибо.

2

Re: MP3 плеер +arduino+oled1.3"

Что-то типа такого? https://www.instructables.com/How-to-Ma … rduino-an/

Re: MP3 плеер +arduino+oled1.3"

Спасибо большое за отклик.
Но к сожалению скетч не компилируется. А так все бы устраивало. выдает очень много ошибок.

C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino: In function 'void setup()':
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:48:5: error: 'flashPage' was not declared in this scope
     flashPage();
     ^~~~~~~~~
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:57:53: error: 'leftButtonISR' was not declared in this scope
   attachInterrupt(digitalPinToInterrupt(leftButton),leftButtonISR, FALLING);
                                                     ^~~~~~~~~~~~~
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:57:53: note: suggested alternative: 'leftButton'
   attachInterrupt(digitalPinToInterrupt(leftButton),leftButtonISR, FALLING);
                                                     ^~~~~~~~~~~~~
                                                     leftButton
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:58:54: error: 'rightButtonISR' was not declared in this scope
   attachInterrupt(digitalPinToInterrupt(rightButton),rightButtonISR, FALLING);
                                                      ^~~~~~~~~~~~~~
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:58:54: note: suggested alternative: 'rightButton'
   attachInterrupt(digitalPinToInterrupt(rightButton),rightButtonISR, FALLING);
                                                      ^~~~~~~~~~~~~~
                                                      rightButton
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:84:3: error: 'startFolderPlay' was not declared in this scope
   startFolderPlay();
   ^~~~~~~~~~~~~~~
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino: In function 'void loop()':
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:100:3: error: 'batteryReader' was not declared in this scope
   batteryReader();
   ^~~~~~~~~~~~~
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:100:3: note: suggested alternative: 'batteryLevel'
   batteryReader();
   ^~~~~~~~~~~~~
   batteryLevel
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:184:13: error: 'player' was not declared in this scope
             player();
             ^~~~~~
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:184:13: note: suggested alternative: 'playing'
             player();
             ^~~~~~
             playing
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:187:13: error: 'settings' was not declared in this scope
             settings();
             ^~~~~~~~
C:\Users\Vlad Rudakov\Downloads\soundpod (1)\soundpod (1).ino:187:13: note: suggested alternative: 'String'
             settings();
             ^~~~~~~~
             String

exit status 1

Compilation error: 'flashPage' was not declared in this scope

4 (2024-01-03 18:02:54 отредактировано Nesco)

Re: MP3 плеер +arduino+oled1.3"

Удалось скомпилировать (Ctrl+R) в arduino 1.8.19 файлик soundpod.ino ,
но с предупреждением "Недостаточно памяти, программа может работать нестабильно."

Скачать все файлы с исходниками ino и один jpg в папку для скетча.https://github.com/DKARDU/MP3/tree/main)
Скачивать лучше целиком файлами. Когда делаете копию части текста с веб странички - бывает копируется куча управляющих символов, которые в Arduino Ide не видно глазом. Потом вываливаются непонятные ощибки.

Выбрать плату Arduino Nano, процессор Atmega 328P (Old BootLoader)

Установить билиотеки “DFRobotDFPlayerMini” и ”U8g2”.

После этого должно скомпилироваться.

Но программка конечно не простая.

5

Re: MP3 плеер +arduino+oled1.3"

MP3 уходит в историю. Есть ли возможность использовать формат с контейнерами M4A или AAC? Они меньше по размеру, а качество звучания намного приятнее.