I installed the dfplayer mini library from DFRobot and also tried to use the github zip but none of them worked i always got this as an error:
fatal error: DFRobotDFPlayerMini.h: No such file or directory
#include "DFRobotDFPlayerMini.h"
^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: DFRobotDFPlayerMini.h: No such file or directory
Yes i did install the library and it is in the documents but it redirects to onedrive and then arduino instead of just documents and my onedrive name has some russian letters i really don't remember why. also yes i installed it both ways, arduino library manager and then github zip since library manager one didnt work
C:\Users\drroze\Downloads\DFPlayerPC\DFPlayerPC.ino:5:10: fatal error: DFRobotDFPlayerMini.h: No such file or directory
#include "DFRobotDFPlayerMini.h"
^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: DFRobotDFPlayerMini.h: No such file or directory
thank you that did the job very well but now i have a new problem. the code i got from a youtuber that made a tutorial on this states that it should print some stuff on serial monitor but it just printed random stuff : S�#����������
#��)�"
heres the code:
//Very much inspired by https://www.dfrobot.com/blog-1462.html by DFRobot Feb 26 2020
//Additions made by Just Baselmans https://www.youtube.com/justbaselmansYT Jan 23 2023
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
// Initialize software serial on pins 10 and 11
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
String line;
char command;
int pause = 0;
int repeat = 0;
void setup() {
// Serial communication with the module
mySoftwareSerial.begin(9600);
// Initialize Arduino serial
Serial.begin(115200);
// Check if the module is responding and if the SD card is found
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!"));
// Initial settings
myDFPlayer.setTimeOut(500); // Serial timeout 500ms
myDFPlayer.volume(5); // Volume 5
myDFPlayer.EQ(0); // Normal equalization
// myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
menu_options();
}
void loop() {
// Waits for data entry via serial
while (Serial.available() > 0) {
command = Serial.peek();
line = Serial.readStringUntil('\n');
// Play from first 9 files
if ((command >= '1') && (command <= '9')) {
Serial.print("Music reproduction");
Serial.println(command);
command = command - 48;
myDFPlayer.play(command);
menu_options();
}
//Play from specific folder
if (command == 'f') {
int indexF = line.indexOf('f');
int indexS = line.indexOf('s');
if (indexF != -1 && indexS != -1 && indexF < indexS) {
int folder = line.substring(indexF + 1, indexS).toInt();
int song = line.substring(indexS + 1).toInt();
Serial.print("From folder: ");
Serial.print(folder);
Serial.print(", playing song: ");
Serial.println(song);
myDFPlayer.playFolder(folder, song); //play specific mp3 in SD:/folder/song.mp3; Folder Name(1~99); File Name(1~255)
} else {
Serial.println("Incomplete 'f' command. Specify both folder and song numbers.");
}
menu_options();
}
// Reproduction
// Stop
if (command == 's') {
myDFPlayer.stop();
Serial.println("Music Stopped!");
menu_options();
}
// Pause/Continue the music
if (command == 'p') {
pause = !pause;
if (pause == 0) {
Serial.println("Continue...");
myDFPlayer.start();
}
if (pause == 1) {
Serial.println("Music Paused!");
myDFPlayer.pause();
}
menu_options();
}
// Toggle repeat mode
if (command == 'r') {
repeat = !repeat;
if (repeat == 1) {
myDFPlayer.enableLoop();
Serial.println("Repeat mode enabled.");
} else {
myDFPlayer.disableLoop();
Serial.println("Repeat mode disabled.");
}
menu_options();
}
// Set volume
if (command == 'v') {
int myVolume = line.substring(1).toInt();
if (myVolume >= 0 && myVolume <= 30) {
myDFPlayer.volume(myVolume);
Serial.print("Current Volume:");
Serial.println(myDFPlayer.readVolume());
} else {
Serial.println("Invalid volume level, choose a number between 0-30.");
}
menu_options();
}
// Increases volume
if (command == '+') {
myDFPlayer.volumeUp();
Serial.print("Current Volume:");
Serial.println(myDFPlayer.readVolume());
menu_options();
}
// Decreases volume
if (command == '-') {
myDFPlayer.volumeDown();
Serial.print("Current Volume:");
Serial.println(myDFPlayer.readVolume());
menu_options();
}
// Play previouse
if (command == '<') {
myDFPlayer.previous();
Serial.println("Previous:");
Serial.print("Current track:");
Serial.println(myDFPlayer.readCurrentFileNumber() - 1);
menu_options();
}
// Play next
if (command == '>') {
myDFPlayer.next();
Serial.println("Next:");
Serial.print("Current track:");
Serial.println(myDFPlayer.readCurrentFileNumber() + 1);
menu_options();
}
}
}
void menu_options() {
Serial.println();
Serial.println(F("=================================================================================================================================="));
Serial.println(F("Commands:"));
Serial.println(F(" [1-9] To select the MP3 file"));
Serial.println(F(" [fXsY] Play song from folder X, song Y"));
Serial.println(F(" [s] stopping reproduction"));
Serial.println(F(" [p] pause/continue music"));
Serial.println(F(" [r] toggle repeat mode"));
Serial.println(F(" [vX] set volume to X"));
Serial.println(F(" [+ or -] increases or decreases the volume"));
Serial.println(F(" [< or >] forwards or backwards the track"));
Serial.println();
Serial.println(F("================================================================================================================================="));
}
here is the verbose output:
FQBN: arduino:avr:nano
Using board 'nano' from platform in folder: C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core 'arduino' from platform in folder: C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Detecting libraries used...
C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E\sketch\DFPlayerPC.ino.cpp -o nul
Alternatives for SoftwareSerial.h: [SoftwareSerial@1.0]
ResolveLibrary(SoftwareSerial.h)
-> candidates: [SoftwareSerial@1.0]
C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SoftwareSerial\src C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E\sketch\DFPlayerPC.ino.cpp -o nul
Alternatives for DFRobotDFPlayerMini.h: [DFRobotDFPlayerMini@1.0.6]
ResolveLibrary(DFRobotDFPlayerMini.h)
-> candidates: [DFRobotDFPlayerMini@1.0.6]
C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SoftwareSerial\src -Ic:\Users\sixey\Videos\Arduino\libraries\DFRobotDFPlayerMini C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E\sketch\DFPlayerPC.ino.cpp -o nul
Using cached library dependencies for file: C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SoftwareSerial\src\SoftwareSerial.cpp
Using cached library dependencies for file: c:\Users\sixey\Videos\Arduino\libraries\DFRobotDFPlayerMini\DFRobotDFPlayerMini.cpp
Generating function prototypes...
C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\variants\eightanaloginputs -IC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SoftwareSerial\src -Ic:\Users\sixey\Videos\Arduino\libraries\DFRobotDFPlayerMini C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E\sketch\DFPlayerPC.ino.cpp -o C:\Users\sixey\AppData\Local\Temp\1653722751\sketch_merged.cpp
C:\Users\sixey\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\sixey\AppData\Local\Temp\1653722751\sketch_merged.cpp
Compiling sketch...
"C:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SoftwareSerial\\src" "-Ic:\\Users\\sixey\\Videos\\Arduino\\libraries\\DFRobotDFPlayerMini" "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E\\sketch\\DFPlayerPC.ino.cpp" -o "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E\\sketch\\DFPlayerPC.ino.cpp.o"
Compiling libraries...
Compiling library "SoftwareSerial"
Using previously compiled file: C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E\libraries\SoftwareSerial\SoftwareSerial.cpp.o
Compiling library "DFRobotDFPlayerMini"
Using previously compiled file: C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E\libraries\DFRobotDFPlayerMini\DFRobotDFPlayerMini.cpp.o
Compiling core...
Using precompiled core: C:\Users\sixey\AppData\Local\arduino\cores\arduino_avr_nano_cpu_atmega328_b9d922d1f481fee03c248fe007c6af99\core.a
Linking everything together...
"C:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.elf" "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E\\sketch\\DFPlayerPC.ino.cpp.o" "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E\\libraries\\SoftwareSerial\\SoftwareSerial.cpp.o" "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E\\libraries\\DFRobotDFPlayerMini\\DFRobotDFPlayerMini.cpp.o" "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E/..\\..\\cores\\arduino_avr_nano_cpu_atmega328_b9d922d1f481fee03c248fe007c6af99\\core.a" "-LC:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E" -lm
"C:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.elf" "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.eep"
"C:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.elf" "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.hex"
Using library SoftwareSerial at version 1.0 in folder: C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SoftwareSerial
Using library DFRobotDFPlayerMini at version 1.0.6 in folder: C:\Users\sixey\Videos\Arduino\libraries\DFRobotDFPlayerMini
"C:\\Users\\sixey\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\sixey\\AppData\\Local\\arduino\\sketches\\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.elf"
Sketch uses 8796 bytes (28%) of program storage space. Maximum is 30720 bytes.
Global variables use 668 bytes (32%) of dynamic memory, leaving 1380 bytes for local variables. Maximum is 2048 bytes.
"C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\sixey\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v -V -patmega328p -carduino "-PCOM8" -b115200 -D "-Uflash:w:C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.hex:i"
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\sixey\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM8
Using Programmer : arduino
Overriding Baud Rate : 115200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 4.4
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "C:\Users\sixey\AppData\Local\arduino\sketches\7C4A6BB853627FC4E93BB0A6D479435E/DFPlayerPC.ino.hex"
avrdude: writing flash (8796 bytes):
Writing | ################################################## | 100% 1.39s
avrdude: 8796 bytes of flash written
avrdude done. Thank you.