#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 месяц назад
#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();
}
Почти всё работает, но есть одно НО- трек начинает играть, 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);
}
Как сделать так чтобы трек воспроизводился полностью?