DFPlayer + HC05 na Arduino Nano - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: DFPlayer + HC05 na Arduino Nano (/watek-dfplayer-hc05-na-arduino-nano) |
DFPlayer + HC05 na Arduino Nano - raziel - 05-12-2022 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 |