Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что делать если DFPlayer mini mp3 проигрывает 5-6 секунд от трека?

Александр Ивакин Raqu Ученик (120), на голосовании 2 дня назад
Недавно подключил DFPlayer mini mp3 к Ардуино.
Почти всё работает, но есть одно НО- трек начинает играть, 5-6 секунд, и переключается на следующий, с остальными треками тоже самое.
Вот скетч:
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
void setup () {
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
delay (100);
mp3_set_volume (20);
}
void loop () {
delay (100);
mp3_play (2); // Произрываем "mp3/0002.mp3"
delay (5000);
mp3_play (5); // Произрываем "mp3/0005.mp3"
delay (5000);
mp3_play (1); // Произрываем "mp3/0001.mp3"
delay (5000);
mp3_play (4); // Произрываем "mp3/0004.mp3"
delay (5000);
mp3_play (3); // Произрываем "mp3/0003.mp3"
delay (5000);
}
Как сделать так чтобы трек воспроизводился полностью?
Голосование за лучший ответ
S.H.I. Оракул (73398) 1 месяц назад
 #include <SoftwareSerial.h> 
#include <DFPlayer_Mini_Mp3.h>

SoftwareSerial mySerial(10, 11); // RX, TX
int currentTrack = 1;
int totalTracks = 5;
bool isPlaying = false;

void setup() {
Serial.begin(9600);
mySerial.begin(9600);
mp3_set_serial(mySerial); // Используйте mySerial вместо Serial
delay(100);
mp3_set_volume(20);
}

void loop() {
if (!isPlaying) {
mp3_play(currentTrack);
isPlaying = true;
Serial.print("Воспроизведение трека: ");
Serial.println(currentTrack);
}

// Проверяем, играет ли еще музыка
if (mp3_get_status() != 1 && isPlaying) { // Если трек закончился
isPlaying = false;
currentTrack++;
if (currentTrack > totalTracks) {
currentTrack = 1; // Начинаем с первого трека после воспроизведения всех
}
delay(500); // Небольшая пауза между треками
}

delay(100); // Небольшая задержка для стабильности
}
Александр Ивакин RaquУченик (120) 1 месяц назад
Ошибка:
'mp3_get_status' was not declared in this scope
Александр Ивакин Raqu Ученик (120) Александр Ивакин Raqu, #include <SoftwareSerial.h> #include <DFPlayer_Mini_Mp3.h> void setup () { Serial.begin (9600); mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module delay (100); mp3_set_volume (20); delay (100); } void loop () { void waitForTrackToFinish() { while (mp3_get_state() == MP3_PLAYING) { delay(100); // Ожидание, пока трек не закончится } } mp3_play(2); waitForTrackToFinish(); mp3_play (5); // Произрываем "mp3/0005.mp3" waitForTrackToFinish(); mp3_play (1); // Произрываем "mp3/0001.mp3" waitForTrackToFinish(); mp3_play (4); // Произрываем "mp3/0004.mp3" waitForTrackToFinish(); mp3_play (3); // Произрываем "mp3/0003.mp3" waitForTrackToFinish(); }
Александр Ивакин RaquУченик (120) 1 месяц назад
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
void setup () {
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
delay (100);
mp3_set_volume (20);
delay (100);
}

void waitForTrackToFinish() {
while (mp3_get_state() == MP3_PLAYING) {
delay(100); // Ожидание, пока трек не закончится
}
}

void loop () {


mp3_play(2);
waitForTrackToFinish();
mp3_play (5); // Произрываем "mp3/0005.mp3"
waitForTrackToFinish();
mp3_play (1); // Произрываем "mp3/0001.mp3"
waitForTrackToFinish();
mp3_play (4); // Произрываем "mp3/0004.mp3"
waitForTrackToFinish();
mp3_play (3); // Произрываем "mp3/0003.mp3"
waitForTrackToFinish();
}
Похожие вопросы