Модуль mp3(DFPlayer). Помогите с кодом.
- Войдите на сайт для отправки комментариев
Пнд, 25/09/2017 - 15:20
Всем привет.
Картинку взял от сюда-https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKUFR0299
Мне нужно добавить 2 кнопки, при таком условии:
- при нажатии на красную кнопку- играет 1 мелодия
- при нажатии на зеленую кнопку- играет 2 мелодия.
А остальные функции кода не нужны.
О, и тут вы :) Я на амперке вам уже ответил, моги у здесь повторить, не вопрос, что называется :)
А какие сложности? Есть функция mp3_play в библиотеке для DFPlayer - её кличете, когда надо проиграть мелодию. Мелодии должны валяться в папке mp3 на флешке, и иметь имена вида 0001.mp3 и т.д. При этом вызов mp3_play(1) - проиграет файл 0001.mp3 на флешке.
Как отследить нажатие кнопки - примеров масса, даже на этом форуме. Инициализация плеера проста:
Добавлю лишь, что про кнопку - можно поискать поиском по форуму, а также в гугле "подключение кнопки к arduino".
ООООО.
Здравствуйте. Какие люди.
Неожиданно. Финт не получился.
Неожиданно. Финт не получился.
Ахах, шутка годная, спасибо, подняли настроение :)
#include "DFPlayer_Mini_Mp3.h"
Кавычки помогли.
Теперь проверка пишет:
pleer_mp3:18:error: 'else'without a previous 'if'
pleer_mp3:24:error: 'else'without a previous 'if'
Если больше одного "действия" в if то необходимо обрамлять {}
А можете на коде показать. Всё равно ошибку показывает.
At global scope:
pleer_mp3:23:error: expected unqualified-id before '{' token 'else' without previous if
))
21, 28 строка не указано каким пинам LOW задается
#include "SoftwareSerial.h"
#include "DFPlayer_Mini_Mp3.h"
void setup()
{
Serial.begin(9600);
mp3_set_serial(Serial);
delay(5000); // обычно жду 5 секунд, пока плеер прочухается
mp3_set_volume(30);
}
void loop()
{
if(digitalRead(14)==HIGH)//если кнопка нажата №1...
{
delay (100);
mp3_play (1); // Проигрываем "mp3/0001.mp3"
}
else //если не нажата...
digitalWrite(14,LOW);
if(digitalRead(15)==HIGH)//если кнопка нажата №2...
{
delay (100);
mp3_play (2); // Проигрываем "mp3/0002.mp3"
}
else //если не нажата...
digitalWrite(15,LOW);
}
Проверка пишет:
Изменены опции сборки, пересобираем всеpleer_mp3.cpp.o: In function `setup':
H:\arduino-nightly/pleer_mp3.ino:7: undefined reference to `mp3_set_serial(HardwareSerial&)'
H:\arduino-nightly/pleer_mp3.ino:9: undefined reference to `mp3_set_volume(unsigned int)'
pleer_mp3.cpp.o: In function `loop':
H:\arduino-nightly/pleer_mp3.ino:18: undefined reference to `mp3_play(unsigned int)'
H:arduino-nightly/pleer_mp3.ino:26: undefined reference to `mp3_play(unsigned int)'
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции.
Проверяй куда библиотеку "установил". Английским по белому же написано что не находит определений функций, значит библиотека не подключилась.
Библиотека DFPlayer_mini_MP3.h и SoftwareSerial.h лежит с этим же файлом с расширением .ino.
а DFPlayer_Mini_Mp3.cpp где лежит?
Спасибо. Заработало. Всё проверил. Нет ошибок.
У меня все нормально компилируется. В IDE вкладка с DFPlayer_mini_MP3.h появляется? Какая версия ИДЕ? Открой h файл и посмотри, есть ли там вообще такие функции?
Да. Спасибо большое. Всё работает!!!
Помогите с решением данной проблемы
Суть такая есть два проигрывателя
пока первый проигрыватель работает его анализирует плата что все в порядке вск ок,
но когда первый проигрыватель вдруг сломался или еще что то с ним случилось, срабатывает резервный проигрыватель через релюху
вот часть кода
подскажите, подключил все по схеме. Идет сильный треск если подключен вывод RX плеера к ардуине, при этом управляется нормально. Пробовал также подключать к пинам RX TX ардуины и увеличивать номинал сопротивления. Динамик 8ом. В чем может быть проблема? может модуль бракованый.
подскажите, подключил все по схеме. Идет сильный треск если подключен вывод RX плеера к ардуине, при этом управляется нормально. Пробовал также подключать к пинам RX TX ардуины и увеличивать номинал сопротивления. Динамик 8ом. В чем может быть проблема? может модуль бракованый.
Тут недавно была тема про это. ТС решил проблему, перестав непрерывно опрашивать модуль по Serial. Начал опрашивать раз в 2 секунды (емнип), и все прошло. Вот только ссылки нету
я его не опрашиваю, просто раз в 10 секунд включаю следующий трек функцией библиотеки DFPlayer_Mini_Mp3.h
для обычных цифровых пинов нашел костыль - просто выключаю пин после команды и включаю непосредственно перед её подачей
11 пин - ТХ ардуины, 10 - RX ардуины
в том то и дело что нет. весь скетч 4 строчки кода.
да и пины 10 и 11 так же шумят
Я ставил резисторы 1k на оба провода и Rx и Tx.
Если не поможет, иногда рекомендуют еще поставить конденсатор 10uF https://github.com/DFRobot/DFRobotDFPlayerMini/issues/20