• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
DFPlayer + HC05 na Arduino Nano
#1
Problem dotyczy połączenia modułów DFPlayer oraz HC05.
Chciałbym poprzez moduł HC05 sterować podstawowymi funkcjami odtwarzacza MP3.
Kod to połączenie dwóch projektów które oddzielnie działają bez problemu:
1. Sterowanie DFPlayerem za pomocą komend poprzez port com (115
2. Część kodu (bluetooth) którym z powodzeniem sterowałem oświetleniem led.
Po połączeniu w całość nie działa :/ 

Kod:
#include <SoftwareSerial.h>
#include "DFRobotDFPlayerMini.h" //DFPlayer

//BT
SoftwareSerial Bluetooth(0, 1);
char Data;
void sendData(String transmitData){
  Bluetooth.println(transmitData);
}

//DFPlayer
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int pausa = 0;

void setup(){
  //BT
  Bluetooth.begin(9600);
   
  //DFPlayer
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini"));
  Serial.println(F("Initializing DFPlayer module ... Wait!"));
   
  if (!myDFPlayer.begin(mySoftwareSerial)){
    Serial.println(F("Not initialized:"));
    Serial.println(F("1. Check the DFPlayer Mini connections"));
    Serial.println(F("2. Insert an SD card"));
    while (true);
  }
   
  Serial.println();
  Serial.println(F("DFPlayer Mini module initialized!"));
   
  myDFPlayer.setTimeOut(500); //Timeout serial 500ms
  myDFPlayer.volume(10); //Volume set: 10
  myDFPlayer.EQ(0); //Equlizer set: normal
}

void loop(){
  if (Bluetooth.available()  > 0){
    Data = Bluetooth.read();
   

    //Music select 1-9
    if (Data >= '1' && Data <= '9'){
      Serial.print("Music Started! Number: ");
      Serial.println(Data);
      Data = Data - 48;
      myDFPlayer.play(Data);
    }
   
    //Stop    
    if (Data == 's'){
      myDFPlayer.stop();
      Serial.println("Music Stopped!");
    }

    //Pauza/Start
    if (Data == 'p'){
      pausa = !pausa;
      if (pausa == 0){
        Serial.println("Continue...");
        myDFPlayer.start();
      }
      if (pausa == 1){
        Serial.println("Music Paused!");
        myDFPlayer.pause();
      }
    }
   
    //Vol. up
    if (Data == '+'){
      myDFPlayer.volumeUp();
      Serial.print("Current volume:");
      Serial.println(myDFPlayer.readVolume());
    }
   
    //Vol. down
    if (Data == '-'){
      myDFPlayer.volumeDown();
      Serial.print("Current Volume:");
      Serial.println(myDFPlayer.readVolume());
    }
   
    //Next
    if (Data == '>'){
      myDFPlayer.next();
      Serial.println("next:");
      Serial.print("Current track:");
      Serial.println(myDFPlayer.readCurrentFileNumber()+1);
    }
   
    //Previous
    if (Data == '<'){
      myDFPlayer.previous();
      Serial.println("Previous:");
      Serial.print("Current track:");
      Serial.println(myDFPlayer.readCurrentFileNumber()-1);
    }
  }
}

Edit. Problem rozwiązany, po zmianie kodu z "if (Bluetooth.available()  > 0)" na "while (Bluetooth.available()  > 0)" oraz po dodaniu w nim na samym początku "Bluetooth.listen()" mogę sterować muzyką z poziomu HC05
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości