Ви не увійшли.
Сторінки 1
Використовуючи код:
if(play_state == HIGH) // читання стану піна BUSY
{
number++;
Track:
if (number>count_mp3){number=0;}
EEPROM.update(11,number);
LCD.clear();
LCD.setCursor(7, 0);LCD.print("Track:");LCD.print(number);
LCD.setCursor(0, 0);LCD.print ("Vol:"); LCD.print (volume);
if (number<=array_size_nameTrack)
{
LCD.setCursor(0, 1);
LCD.print (nameTrack[number-1]);
}
if (number>array_size_nameTrack)
{
LCD.setCursor(3, 1);
LCD.print ("MP3 Player");
}
myDFPlayer.play(number);
delay(700);
}
if (millis() - tmignore > 500)
{
tmignore = millis();
// Наступна пісня
if (enc2.isRight())
{
number++;
if (number>count_mp3){number=1;}
goto Track;
}
// Попередня пісня
if (enc2.isLeft())
{
number--;
if (number<1){number=count_mp3;}
goto Track;
}
// Швидка перемотка на 10 треків у перед
if (enc2.isFastR())
{
number=number+10;
if (number>count_mp3){number=1;}
goto Track;
}
// Швидка перемотка на 10 треків назад
if (enc2.isFastL())
{
number=number-10;
if (number<1){number=count_mp3;}
goto Track;
}
}
Є проблема.
Програвач грає треки по порядку, інколи програвач зациклюється на одному треку, енкодером перемонтую на наступний і далі нормально грає по порядку, до наступного, рандомного, повтору проблеми.Може хто підкаже по вирішенні цієї проблемі?
Бібліотека DFRobotDFPlayerMini.h
Остання редакція Partyzan (2022-02-02 11:48:54)
Неактивний
Определите, доходит ли выполнение кода до myDFPlayer.play(number); например добавьте вывод лога в serial, если да, то ищите ошибку в коде, почему не изменяется number, если нет, значит плеер настроен на повторное проигрывание одного и того же трека и Ваша программа не успевает отловить play_state == HIGH
Неактивний
Вивід на монітор пристуній. Але проблема сильно плаваюча, на даний момент грає 120 трек по порядку, без проблем. Ймовірно таки є якийсь нюанс з визначенням стану піна BUSY, принаймі такі вігдуки зустрічаються стосовно роботи DFplayer.
Неактивний
Сторінки 1