Странные проблемы с dfplayer

Тема в разделе "Arduino & Shields", создана пользователем McHummer1, 1 дек 2018.

  1. McHummer1

    McHummer1 Нерд

    Добрый день. Почему-то при работе с dfplayer функция setup запускается в цикле. КАК?!?!
    При это плеер постоянно перезапускается
    Код (C++):
    #include "Arduino.h"
    #include "SoftwareSerial.h"
    #include "DFRobotDFPlayerMini.h"

    SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
    DFRobotDFPlayerMini myDFPlayer;

    void setup()
    {
      mySoftwareSerial.begin(9600);
      Serial.begin(115200);
     
      Serial.println();
      Serial.println(F("DFRobot DFPlayer Mini Demo"));
      Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
     
      if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
        Serial.println(F("Unable to begin:"));
        Serial.println(F("1.Please recheck the connection!"));
        Serial.println(F("2.Please insert the SD card!"));
        while(true){
          delay(0); // Code to compatible with ESP8266 watch dog.
        }
      }
      Serial.println(F("DFPlayer Mini online."));
     
      myDFPlayer.volume(10);  //Set volume value. From 0 to 30
      myDFPlayer.play(1);  //Play the first mp3
    }

    void loop()
    {
      int arr[10000];
      for(int i = 0; i < 10000; i++)
        arr[i] = analogRead(A0);
      for(int i = 0; i < 10000; i++)
        Serial.println(arr[i]);
    }
    Подключение стандартное + DAC_L подключен к A0. При отключении этого соединения проблема не исчезает. Если закоментировать содержимое loop, то работает. Плюс иногда в COM монитор прилетают битые символы, и иногда символы просто не доходят.
     
  2. parovoZZ

    parovoZZ Гуру

    код сам написал или тиснул у кого? Плата какая?
     
  3. McHummer1

    McHummer1 Нерд

    Плата уно, также тестировал на мене. Код на основе примера. Какая разница чей код, главное, что он не работает, хотя должен работать
     
  4. parovoZZ

    parovoZZ Гуру

    код работает всегда, каким бы он ни был. Если он не работает, значит МК на помойку.
    где комментарии к коду?

    а вот это зачем?
     
  5. McHummer1

    McHummer1 Нерд

    Комментарии убрал чтобы не мешали. While true - это строка из примера, блокировка мк при неудачном соединении с плеером. Проблема в том, что при удачном соединении плеер перезагружается и setup выполняется опять О_о.
     
  6. ostrov

    ostrov Гуру

    Я уже раз десять тут писал, что библиотека DFRobotDFPlayerMini.h и ей подобные, кривая. Точнее, кривая не она, а китайский аналог той платы под которые она написана. И рассказывал в чем именно. Более того, я приводил тут функции, которые без глюков работают именно на наших плеерах. Я их придумал давным-давно и пользуюсь примерно с того же времени, до сих пор работают сразу и всегда. Мог бы повторить, но лень. Тут все уже есть.
     
  7. DetSimen

    DetSimen Guest

    int arr[10000];
    for(int i =0; i <10000; i++)
    arr= analogRead(A0);

    где ты нашол в Дуне 20К ОЗУ? Естесственно, у тебя стек лезет вниз, пока не затрет твои нехитрые остальные переменные. Потом Дуня облегченно перезапускаеца
     
    parovoZZ, Un_ka, arkadyf и ещё 1-му нравится это.