#1 2022-02-01 23:35:39

Partyzan
Учасник
Зареєстрований: 2021-11-21
Повідомлень: 13

DFPlayer використовуючи пін BUSY

Використовуючи код:

                        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)

Неактивний

#2 2022-02-02 09:46:18

Honey
Учасник
З Київ
Зареєстрований: 2020-09-26
Повідомлень: 414

Re: DFPlayer використовуючи пін BUSY

Определите, доходит ли выполнение кода до myDFPlayer.play(number); например добавьте вывод лога в serial, если да, то ищите ошибку в коде, почему не изменяется number, если нет, значит плеер настроен на повторное проигрывание одного и того же трека и Ваша программа не успевает отловить play_state == HIGH

Неактивний

#3 2022-02-03 21:30:44

Partyzan
Учасник
Зареєстрований: 2021-11-21
Повідомлень: 13

Re: DFPlayer використовуючи пін BUSY

Вивід на монітор пристуній. Але проблема сильно плаваюча, на даний момент грає 120 трек по порядку, без проблем. Ймовірно таки є якийсь нюанс з визначенням стану піна BUSY, принаймі такі вігдуки зустрічаються стосовно роботи DFplayer.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму