MP3 плеер

brodagas
Offline
Зарегистрирован: 21.08.2021

прошу помощи у знатоков!

пытаюсь создать часы с кукушкой с использованием MP3Player. проблема в том, что я не могу заставить плеер включаться по команде ардуино. пытаюсь действовать по образцам других проектов, но безуспешно.

зарание спасибо за помощь!!!!

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brodagas пишет:
зарание спасибо за помощь!!!!

112 звони, они приедут. Мы - нет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brodagas, а если так:

прошу помощи у знатоков!

пытаюсь создать музыкальный хит с использованием фортепиано. проблема в том, что я не могу заставить инструмент звучать так, как мелодия звучит у меня в голове. пытаюсь действовать по образцам работы композиторов, которые видел в кино, но безуспешно.

зарание спасибо за помощь!!!!

Поможете? Самому не смешно?

brodagas
Offline
Зарегистрирован: 21.08.2021

смешно попросить помощи?

Tild
Offline
Зарегистрирован: 16.08.2021

Насколько я понял, просматривая варианты подобного, самый нормальный вариант - покупка отдельной платы выдающей по команде нужный файлик в эфир.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brodagas пишет:

смешно попросить помощи?

Помощь, это когда делаешь ты и спрашиваешь, когда не получается.  Твой вопрос звучит как "Сделайте мне". 

Это в раздел "Ищу исполнителя" и за деньги.

brodagas
Offline
Зарегистрирован: 21.08.2021

значит я не правильно сформулировал вопрос, я не прошу сделать для меня, просто не могу понять почему я отправляю команду на воспроизведение файла, а плеер не реагирует

rkit
Offline
Зарегистрирован: 23.11.2016

И почему ты решил, что кто-то на форуме должен знать, что ты там не так делаешь?

brodagas
Offline
Зарегистрирован: 21.08.2021

почему? а по ошибке подумал что здесь можно попросить помощи если не получатся, но пока дальше насмешек дело не пошло. спасибо всем

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ты идиот или прикидываешься?  Как мы, не видя твоего кода, можем сказать что не так?  По невнятно-путанному описанию, по ходу заглядывая в помутневший стеклянный шар?  

Хочешь помощи - давай схему и код.  Если этого нет - иди в ищу исполнителя, там ты можешь тупить на все деньги. 

sadman41
Offline
Зарегистрирован: 19.10.2016

1) Подключил неверно;
2) Подал не ту команду;
3) Спалил плеер.

Хватит пока вариантов?

brodagas
Offline
Зарегистрирован: 21.08.2021

[quote=DetSimen]

Ты идиот или прикидываешься?  Как мы, не видя твоего кода, можем сказать что не так?  По невнятно-путанному описанию, по ходу заглядывая в помутневший стеклянный шар?  

Хочешь помощи - давай схему и код.  Если этого нет - иди в ищу исполнителя, там ты можешь тупить на все деньги. 

я не идиот и не прикидываюсь, новичек.....

 
 
 
#include <Wire.h>
#include <DS3231.h>   // подключаем библиотеку для часов 
 
#include <SoftwareSerial.h>    // библиотека для для обмена данными 
#include <DFPlayer_Mini_Mp3.h> // подключаем библиотеку для DFPlayer Mini
 
DS3231 clock;
RTCDateTime dt;
SoftwareSerial mySerial(10, 11);                  // RX, TX
 
void setup()
{
  Serial.begin(9600);
  clock.begin();
  clock.setDateTime(__DATE__, __TIME__);
 
  mySerial.begin (9600);
  mp3_set_serial(mySerial); // включаем передачу данных с DFPlayer mini mp3
  delay(1);               // задержка в 1ms для установки громкости
  mp3_set_volume(15);     // устанавливаем громкость от 0 до 30
  mp3_set_EQ(0);          // устанавливаем эквалайзер от 0 до 5
 
}
 
void loop()
{
  int H = dt.hour;
  int M = dt.minute;
  int S = dt.second;
 
  dt = clock.getDateTime();
 
  Serial.print(dt.hour);   Serial.print(":");
  Serial.print(dt.minute); Serial.print(":");
  Serial.print(dt.second); Serial.print("  ");
  Serial.print(dt.year);   Serial.print("-");
  Serial.print(dt.month);  Serial.print("-");
  Serial.print(dt.day);    Serial.println(" ");
 
  if (M == 0 && S == 0) {
    switch (H) {
      case 12:
      case 00:
        mp3_play(1);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;
 
      case 1:
      case 13:
        mp3_play(2);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;
 
      case 2:
      case 14:
        Serial.println("Koo-Koo");
        break;
 
      case 3:
      case 15:
        Serial.println("Koo-Koo");
        break;
 
      case 4:
      case 16:
        Serial.println("Koo-Koo");
        break;
 
      case 5:
      case 17:
        Serial.println("Koo-Koo");
        break;
 
      case 6:
      case 18:
        mp3_play(1);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;
 
      case 7:
      case 19:
        mp3_play(1);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;
 
      case 8:
      case 20:
        Serial.println("Koo-Koo");
        break;
 
      case 9:
      case 21:
        Serial.println("Koo-Koo");
        break;
 
      case 10:
      case 22:
        Serial.println("Koo-Koo");
        break;
 
      case 11:
      case 23:
        Serial.println("Koo-Koo");
        break;
    }
  }
  delay(1000);
}
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brodagas пишет:
отправляю команду на воспроизведение файла, а плеер не реагирует
Вы отправляете ХЗ какую команду, ХЗ какому модулю, подключённому по ХЗ какой схеме (ничего из перечисленного Вы нам не предоставили).

brodagas пишет:
почему

ХЗ!

Так понятнее?

brodagas
Offline
Зарегистрирован: 21.08.2021

спасибо

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brodagas пишет:

я не идиот и не прикидываюсь, новичек.....

Неправда!

Если бы Вы были новичком, Вы бы прочитали тему с более, чем говорящим названием "ПЕСОЧНИЦА. НОВИЧОК, ПРОЧТИ!" в вставили бы код правильно.

Значит, не новичёк.

sadman41
Offline
Зарегистрирован: 19.10.2016

DFplayer, когда его просят проиграть первый файл, делает это с первым записанным на карту. Помнится мне, что номера в именах файлах чисто условны.

brodagas
Offline
Зарегистрирован: 21.08.2021

sadman41 пишет:
DFplayer, когда его просят проиграть первый файл, делает это с первым записанным на карту. Помнится мне, что номера в именах файлах чисто условны.

 

спасибо за ответ, а моя проблема что плеер не хочет играть и в этом суть вопроса и просьбы напрכвить меня в нужное русло. 

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

brodagas пишет:

 а моя проблема что плеер не хочет играть и в этом суть вопроса и просьбы напрכвить меня в нужное русло. 

См. сообщение #14. Обсуждать неправильно вставленный код никто не будет, потому что это нереально. Как мне, к примеру, указать вам номер проблемной строки, если номера строк не проставлены?

brodagas
Offline
Зарегистрирован: 21.08.2021

v258 пишет:

brodagas пишет:

 а моя проблема что плеер не хочет играть и в этом суть вопроса и просьбы напрכвить меня в нужное русло. 

См. сообщение #14. Обсуждать неправильно вставленный код никто не будет, потому что это нереально. Как мне, к примеру, указать вам номер проблемной строки, если номера строк не проставлены?

спасибо, если мне обьясняют медленно, то я понимаю быстро....

sadman41
Offline
Зарегистрирован: 19.10.2016

Уже направили. Только Вам этого не нужно.

DIVGENY
Offline
Зарегистрирован: 23.08.2016

brodagas пишет:

а моя проблема что плеер не хочет играть и в этом суть вопроса и просьбы напрכвить меня в нужное русло. 

1. самое главное условие - не спешить... тут таких не любят. программирование это кропотливый труд. одна строчка неправильного, недописанного, вставленного не туда кода рушит весь алгоритм.

2.чтобы получить нормальный ответ на вопрос необходимо нормально его сформулировать и правильно оформить согласно этикету форума. для этого нужно научиться правильно вставлять код, картинки и т.д.

3.прежде чем управлять каким либо устройством - проверьте его и научитесь управлять им.

4.все устройства, подключенные к ардуино должны быть инициализированы...

например часы. учимся выставлять и запускать реальное время.

                        учимся в какое-то время по условию включать светодиод.

мп3. учимся просто проиграть мелодию.

добавляем проигрывание к светодиоду. затем светодиод можно убрать.

 

brodagas
Offline
Зарегистрирован: 21.08.2021

DIVGENY пишет:

brodagas пишет:

а моя проблема что плеер не хочет играть и в этом суть вопроса и просьбы напрכвить меня в нужное русло. 

1. самое главное условие - не спешить... тут таких не любят. программирование это кропотливый труд. одна строчка неправильного, недописанного, вставленного не туда кода рушит весь алгоритм.

2.чтобы получить нормальный ответ на вопрос необходимо нормально его сформулировать и правильно оформить согласно этикету форума. для этого нужно научиться правильно вставлять код, картинки и т.д.

3.прежде чем управлять каким либо устройством - проверьте его и научитесь управлять им.

4.все устройства, подключенные к ардуино должны быть инициализированы...

например часы. учимся выставлять и запускать реальное время.

                        учимся в какое-то время по условию включать светодиод.

мп3. учимся просто проиграть мелодию.

добавляем проигрывание к светодиоду. затем светодиод можно убрать.

 

большое спасибо. я пытаюсь освоить насколько это возможно самостоятельно и некоторые первоначальные этапы уже позади. несмотря на это все еще новичек ... и это то что получилось на этом "проекте"


#include <Adafruit_GFX.h>
#include <OLED_SH1106.h>
#define OLED_RESET 7
OLED_SH1106 display(OLED_RESET); // создаём объект "дисплей"

#include <Wire.h>
#include <DS3231.h>   // подключаем библиотеку для часов 

#include <SoftwareSerial.h>    // библиотека для для обмена данными 
#include <DFPlayer_Mini_Mp3.h> // подключаем библиотеку для DFPlayer Mini

DS3231 clock;
RTCDateTime dt;
SoftwareSerial mySerial(10, 11);                  // RX, TX

void setup()
{
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);  // инициализация дисплея по интерфейсу I2C, адрес 0x3C
  display.clearDisplay(); // очистка дисплея
  display.setTextSize(3); // установка размера шрифта
  display.setTextColor(WHITE); // установка цвета текста

  Serial.begin(9600);
  clock.begin();
 // clock.setDateTime(__DATE__, __TIME__);

  mySerial.begin (9600);
  mp3_set_serial(mySerial); // включаем передачу данных с DFPlayer mini mp3
  delay(1);               // задержка в 1ms для установки громкости
  mp3_set_volume(15);     // устанавливаем громкость от 0 до 30
  mp3_set_EQ(0);          // устанавливаем эквалайзер от 0 до 5

}

void loop()
{
  int H = dt.hour;
  int M = dt.minute;
  int S = dt.second;
  int Y = dt.year;
  int m = dt.month;
  int D = dt.day;
  dt = clock.getDateTime();

  display.clearDisplay(); // очистка дисплея
  display.setCursor(32, 25); // установка курсора в позицию X = 0; Y = 0
  display.print(":");
  display.setCursor(77, 25); // установка курсора в позицию X = 0; Y = 0
  display.print(":");
  display.setCursor(1, 25);
  display.print(H);
  display.setCursor(45, 25);
  display.print(M);
  display.setCursor(92, 25);
  display.print(S);
  display.display(); // и её выводим на экран

  Serial.print(dt.hour);   Serial.print(":");
  Serial.print(dt.minute); Serial.print(":");
  Serial.print(dt.second); Serial.print("  ");
  Serial.print(dt.year);   Serial.print("-");
  Serial.print(dt.month);  Serial.print("-");
  Serial.print(dt.day);    Serial.println(" ");

  if (M == 13 && S == 0 && Y != 0 && m != 0 && D != 0) {
    switch (H) {
      case 12:
      case 00:
        mp3_play(1);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;

      case 1:
      case 13:
        mp3_play(2);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;

      case 2:
      case 14:
        Serial.println("Koo-Koo");
        break;

      case 3:
      case 15:
        Serial.println("Koo-Koo");
        break;

      case 4:
      case 16:
        Serial.println("Koo-Koo");
        break;

      case 5:
      case 17:
        Serial.println("Koo-Koo");
        break;

      case 6:
      case 18:
        mp3_play(1);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;

      case 7:
      case 19:
        mp3_play(1);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;

      case 8:
      case 20:
        Serial.println("Koo-Koo");
        break;

      case 9:
      case 21:
        mp3_play(1);   // проигрываем файл mp3/0001.mp3
        Serial.println("Koo-Koo");
        break;

      case 10:
      case 22:
        Serial.println("Koo-Koo");
        break;

      case 11:
      case 23:
        Serial.println("Koo-Koo");
        break;
    }
  }
  delay(1000);
}

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Вот если ты слехка мозг наморщишь, то непременно угадаешь, что здесь не так

void loop()
{
  int H = dt.hour;
  int M = dt.minute;
  int S = dt.second;
  int Y = dt.year;
  int m = dt.month;
  int D = dt.day;
  dt = clock.getDateTime();

 

brodagas
Offline
Зарегистрирован: 21.08.2021

DetSimen пишет:

Вот если ты слехка мозг наморщишь, то непременно угадаешь, что здесь не так

void loop()
{
  int H = dt.hour;
  int M = dt.minute;
  int S = dt.second;
  int Y = dt.year;
  int m = dt.month;
  int D = dt.day;
  dt = clock.getDateTime();

 

не получается 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Тогда ясно.  На скопипижженом коде, в котором ты разбираешься как в сортах тканей, сложно сделать что-либо.  Либо ты начинаешь изучать матчасть, либо забей,  отнеси всё в ведро, или продай на Авито, и купи себе пива с семками.

За тебя никто ничего делать не будет, и рабочий код бесплатно ты не получишь, придётся самому разбираться. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brodagas пишет:

DetSimen пишет:

Вот если ты слехка мозг наморщишь, то непременно угадаешь, что здесь не так

void loop()
{
  int H = dt.hour;
  int M = dt.minute;
  int S = dt.second;
  int Y = dt.year;
  int m = dt.month;
  int D = dt.day;
  dt = clock.getDateTime();

 

не получается 

Вам никогда не казалось, что нужно сначала спросить у часов время, а уж потом разбирать это время на часы, минуты и прочее? Нет?

И, кстати, схемы как не было, так и нет :-(

brodagas
Offline
Зарегистрирован: 21.08.2021

ЕвгенийП пишет:

brodagas пишет:

DetSimen пишет:

Вот если ты слехка мозг наморщишь, то непременно угадаешь, что здесь не так

void loop()
{
  int H = dt.hour;
  int M = dt.minute;
  int S = dt.second;
  int Y = dt.year;
  int m = dt.month;
  int D = dt.day;
  dt = clock.getDateTime();

 

не получается 

Вам никогда не казалось, что нужно сначала спросить у часов время, а уж потом разбирать это время на часы, минуты и прочее? Нет?

И, кстати, схемы как не было, так и нет :-(

спасибо за замечание. ошибку исправил, но проблема осталась....

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

угадай теперь, чем твоя схема отличается от этой для Uno

lilik
Offline
Зарегистрирован: 19.10.2017

Схема прикольная. В скетче одни элементы просматриваются, а на схеме нет. Питание никак друг с другом не связано, ошибки соединения сигнальных проводов.

brodagas
Offline
Зарегистрирован: 21.08.2021

lilik пишет:

Схема прикольная. В скетче одни элементы просматриваются, а на схеме нет. Питание никак друг с другом не связано, ошибки соединения сигнальных проводов.

на схеме я умышленно не нарисовал дисплей- он работает исправно и не в нем суть проблемы, питание- плюс и минус общие... вместо RTC по ошибке написал RST... а какие ошибки в сигнальных проводах?

brodagas
Offline
Зарегистрирован: 21.08.2021

DetSimen пишет:

угадай теперь, чем твоя схема отличается от этой для Uno

нет резисторов и должно быть перекрестное подключение RX иTX. все это я пробовал и не получилось

lilik
Offline
Зарегистрирован: 19.10.2017

Послушайте, а разве TX c TX можно соединять? Разве они не ах друг друга?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brodagas пишет:

все это я пробовал и не получилось

Ну, меняй теперь камень, у этого ты уже порты пажог. Маладец.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brodagas пишет:

нет резисторов и должно быть перекрестное подключение RX иTX. все это я пробовал и не получилось

Т.е. Вы попробовали "перекрестное подключение RX иTX" - не заработало и Вы вернулись к "прямому".

Знаете, тут был один участник (может, Ваш брат?), у него светодиод не светился. Ему ему сказали, что светодиод подключён к седьмому пину, а в скетче управляется восьмым. Так он и ответил как Вы: "я попробовал к восьмому, тоже не работает и я вернул обратно".

Простите, вопрос чисто медицинский (без цели обидеть), Вы идиот?

brodagas
Offline
Зарегистрирован: 21.08.2021

ЕвгенийП пишет:

brodagas пишет:

нет резисторов и должно быть перекрестное подключение RX иTX. все это я пробовал и не получилось

Т.е. Вы попробовали "перекрестное подключение RX иTX" - не заработало и Вы вернулись к "прямому".

Знаете, тут был один участник (может, Ваш брат?), у него светодиод не светился. Ему ему сказали, что светодиод подключён к седьмому пину, а в скетче управляется восьмым. Так он и ответил как Вы: "я попробовал к восьмому, тоже не работает и я вернул обратно".

Простите, вопрос чисто медицинский (без цели обидеть), Вы идиот?

хамство это последнее что я ожидал услышать в свой адрес. если по теме ничего умного сказать не можешь просто старайся не переходить на личности в жизни это может помочь и спасти (без цели обидеть)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ты не поверишь, ТС, это не хамство, это диагноз. Воспользуйся #24

brodagas
Offline
Зарегистрирован: 21.08.2021

DetSimen пишет:

Ты не поверишь, ТС, это не хамство, это диагноз. Воспользуйся #24

постарайся мне больше не писать, я человек не конфликтный, но предпочту попросить помощи в другом месте, а не общаться с хамлом

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brodagas пишет:
постарайся мне больше не писать

Замётано!!! Больше не буду. Пойду, разведу себе

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Попробую не хамить.

Уважаемый ТС - а Вы пробовали запустить плеер от ардуино без модуля реального времени? Например от нажатия кнопки?

Нет? - так слона надо есть по частям.

brodagas
Offline
Зарегистрирован: 21.08.2021

DetSimen пишет:

brodagas пишет:
постарайся мне больше не писать

Замётано!!! Больше не буду. Пойду, разведу себе

удачи и процветания!

brodagas
Offline
Зарегистрирован: 21.08.2021

mykaida пишет:

Попробую не хамить.

Уважаемый ТС - а Вы пробовали запустить плеер от ардуино без модуля реального времени? Например от нажатия кнопки?

Нет? - так слона надо есть по частям.

конечно пробовал но с другим типом плеера

sadman41
Offline
Зарегистрирован: 19.10.2016

Интересно, на рисунке Uno RX/TX - какие пины?

brodagas
Offline
Зарегистрирован: 21.08.2021

sadman41 пишет:
Интересно, на рисунке Uno RX/TX - какие пиныa?

A10 A11

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

brodagas пишет:

конечно пробовал, все прекрасно работало.

Замечательно!

А теперь уберите строчки с 65 по 132 и вместо этого напишите:

If(Hour != OldHour){

.......//Делаем Ку-Ку

OldHour=Hour;

}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

brodagas пишет:

sadman41 пишет:
Интересно, на рисунке Uno RX/TX - какие пиныa?

A10 A11


Так и написано на плате? Тогда я пас.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

brodagas пишет:

хамство это последнее что я ожидал услышать в свой адрес. если по теме ничего умного сказать не можешь просто старайся не переходить на личности в жизни это может помочь и спасти (без цели обидеть)

Не было никакого хамства. Вопрос был чисто медицинский (я заранее предупредил). Людям с таким диагнозом помогать надо особым образом. Вот я и спросил, чтобы знать как Вам помогать. Не вижу никакого хамства. Не хотите отвечать - не надо.

А в Ваших советах куда мне переходить, а куда нет, я абсолютно не нуждаюсь. Я всегда это сам решаю.

brodagas
Offline
Зарегистрирован: 21.08.2021

mykaida пишет:

brodagas пишет:

конечно пробовал, все прекрасно работало.

Замечательно!

А теперь уберите строчки с 65 по 132 и вместо этого напишите:

If(Hour != OldHour){

.......//Делаем Ку-Ку

OldHour=Hour;

}

 

большое спасибо! я со своей невысокой колокольни понял две вещи: мне надо создать соответствующие переменные для значений, которые вы написали- над этим я должен подумать и второе: а не могу понять смысл написанного и как это будет работать, еще раз спасибо

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

brodagas пишет:

большое спасибо! я со своей невысокой колокольни понял две вещи: мне надо создать соответствующие переменные...

Много, что надо. Например создать алгоритм Вашей программы, протестировать Ваш МР3 модуль.

И главное - не ругаться с динозаврами данного форума. Они все - крутейшие специалисты. И то, что Вы не понимаете, что они советуют - это Ваши недостаточные знания. А для них Вы как в том анекдоте:

Приезжает мужик в Ялту на отдых. Выходит на пляж.
Смотрит, а в нескольких метрах от него лежит прекраснейшая женщина.
Одна лежит, никого вокруг нее нет. Мужик подходит к ней и спрашивает:
- Простите, а почему такая прекрасная женщина и одна?
- Мужик, вот ты кем работаешь?
- Токарем на заводе!
-Вот представь, приезжаешь ты на отдых, а вокруг тебя станки, станки...