Best Way to Play Audio on Arduino! DFPlayer mini / MP3-TF-16p Tutorial

Поделиться
HTML-код
  • Опубликовано: 8 июл 2024
  • Thank you for watching, I hope this DFPlayer mini / MP3-TF-16P tutorial is useful.
    Timestamps:
    0:00 Intro
    0:26 Prepare micro-SD
    1:18 Add songs to micro-SD
    2:02 Building physical circuit
    2:39 Install Arduino library.
    3:15 What to do with SD card error
    3:47 Testing, no external power supply
    4:19 Testing with external power supply
    5:26 Play music with the press of a button
    Download the Arduino sketch:
    drive.google.com/drive/folder...
    Music:
    Blue Dream by Cheel
    Book the rental by Wit It
    Know myself by Patrick Patrikios
  • НаукаНаука

Комментарии • 81

  • @TheBustyOnion
    @TheBustyOnion 4 месяца назад +1

    Great video plus code is super helpful, appreciate!

  • @AvrahamSosa
    @AvrahamSosa 3 месяца назад +6

    Hi, What capacitor do you add to the circuit? Do you have the electric diagram file? Thank you!

  • @johnmendeleevb1740
    @johnmendeleevb1740 4 месяца назад

    ive seen the other video and this is module is good

  • @RobbertDIYprojects
    @RobbertDIYprojects 4 месяца назад +1

    awesome this video helped me out in a recent project :D

    • @JustBaselmansYT
      @JustBaselmansYT  4 месяца назад

      That's so nice to hear! Good luck with your project ;)

  • @1q2w3e4rtyuiop
    @1q2w3e4rtyuiop Месяц назад +1

    Absolute legende ben je!

  • @rkjayakrishnan3997
    @rkjayakrishnan3997 4 месяца назад

    I need to play the RAW sound by the Arduino mic and play with it's speaker?

  • @0nkar
    @0nkar 4 месяца назад +1

    Hey i want to make a pokemon ball vibrate and make the pokemon captured sound. Which power speaker shoild i buy? Which microcontroller as it needs to be small and which type and how many batteries would i need?

    • @JustBaselmansYT
      @JustBaselmansYT  4 месяца назад

      I happen to be working on a few videos about a 3D-printed realistic PokeBall. I will also be working on electronics for sound and the signature shake so more on this topic soon😄

    • @0nkar
      @0nkar 4 месяца назад

      @JustBaselmansYT so you're my competition 😏 I actually have all the components and I tried your code for the pokemon ball but the code you gave didn't work for the dfplayer to play the pokemone sound

    • @dumbledorrito
      @dumbledorrito 27 дней назад

      depends on how loud (dB) you want it, then you'll be able to sort your requirements of the speaker (passive or active) and the rattling, you could probably do a quick fbd, and design a weight attached to an arm on a non-continuous positional servo to keep the COM low, but able to shift it to mimic the rattling just make sure you check the torque specs to stop slipping. That way you can control the rattling better and sync it with the audio. When selecting your power supply, just make sure you meet the voltage requirements for your components and set an arbitrary time you want this device to last. (Longer, the more bulky the battery generally). Optionally for the motor, you could do a motor attached a wheel with a lob-sided weight and derive a sine function for the movement to control its speed and etc. :)

  • @person_83049
    @person_83049 3 месяца назад

    i cant find the library u used?

  • @markvv596
    @markvv596 4 месяца назад

    Is there any way to output the signal to a 3.5mm jack? so you can control a external speaker?

    • @JustBaselmansYT
      @JustBaselmansYT  4 месяца назад +2

      The DAC_R and DAC_L on the DFPlayer can be used for this purpose!

  • @cadillacescalade5428
    @cadillacescalade5428 3 месяца назад +1

    Hi, I am wanting to use DF mini player with a sketch I have already how would I incorporate the DF-Mini into my sketch ?
    Also I have a IR sensor as well that activates my sketch I'm wanting sound and for it to stop playing when ir sensor is uncovered.

    • @JustBaselmansYT
      @JustBaselmansYT  3 месяца назад +1

      circuitdigest.com/microcontroller-projects/interfacing-ir-sensor-module-with-arduino
      You can use this code but instead of turning an LED on and off you can use mp3_stop() and mp3_play()

    • @cadillacescalade5428
      @cadillacescalade5428 3 месяца назад

      @JustBaselmansYT ok Kool thank You

    • @lamboking8able
      @lamboking8able 17 часов назад +1

      @cadillacescalade5428 if it didn't work, I'm also using ir sensors, and I used uart1 which I had to move to a new location on the board

  • @wallie61-
    @wallie61- 4 месяца назад

    Great video! I’m trying to do led effects and sounds effects working together. I’ve got it working. But the df player is so slow. I press the button and my led strip fades color instantly and is almost done before the df player plays my file… is this normal behavior for the player?

    • @lamboking8able
      @lamboking8able 17 часов назад

      @wallie61- not in my experience but I'm using a dfplayer pro

  • @ggbaby5845
    @ggbaby5845 17 дней назад

    what tipe of speaker is that? in need it for a project and i can't find something similar anywhere 😢

    • @JustBaselmansYT
      @JustBaselmansYT  16 дней назад

      If you look for 4ohm 3watt speaker on Aliexpress you should be able to find them. Good luck!

  • @monkeytree1648
    @monkeytree1648 Месяц назад

    I 'am new to coding sooo can someone help me make buttons for all the serial monitor command's pleases

  • @whoopzKERRY
    @whoopzKERRY Месяц назад +1

    I already installed that apps, but it says, "Cannot format write protected card". How to solve this problem?

    • @lamboking8able
      @lamboking8able Месяц назад

      Format it in the sd card settings from windows by right clicking the card in your files.

  • @animeforever694
    @animeforever694 3 месяца назад +3

    what capacitor did you use for the circuit?

    • @livetohash6152
      @livetohash6152 2 месяца назад +2

      Exactly! And why? 🤔🤔

    • @dukdog
      @dukdog Месяц назад

      @@livetohash6152 ruclips.net/video/u40kX1DYKdA/видео.html

  • @yakacm
    @yakacm 3 месяца назад +4

    You realise you can format the thing from Windows? Like you don't need an app. TBH I'm not even too sure why those formatting apps even exist?

    • @jtrockhound6016
      @jtrockhound6016 16 дней назад

      if your sd card is more than 32 gigabytes (yeah i know that’s overkill for most projects) an application is needed to format 64gig and beyond to fat32

  • @lamboking8able
    @lamboking8able Месяц назад

    what would you say is the latency between pressing the button and the sound starting. Currently I'm using an esp32 with an I2S and my latency is between 0.2 to 0.3 seconds with human error between that. I need it to be less than 0.15 seconds as I'm synching a gunshot sound with a trigger pull.

    • @DalaFilmprod
      @DalaFilmprod 21 час назад

      Did you ever get an answer for this, here or anywhere else. I'm wondering the same thing, also have a time critical projekt.

    • @lamboking8able
      @lamboking8able 17 часов назад

      @DalaFilmprod YES! I find online about a 0.03 communication time from esp32 to dfplayer. I switched to the dfplayer pro, but I would say in experience that's about as fast as it starts. Near instant so definitely go for it.

    • @lamboking8able
      @lamboking8able 17 часов назад

      Fyi I'm using uart1 (which I moved around to use) to communicate with it.

  • @ZF0317
    @ZF0317 3 месяца назад +1

    Anyone have the error where arduino is stuck building a sketch and unreadable symbols are printed in the serial monitor?
    Figured out it was the Baud rate. Also, the TX and RX are reversed in the code. Where it says the value for RX is actually TX and TX is really RX.

    • @plantor0728
      @plantor0728 3 месяца назад

      ya I have that same error how do I fix it

    • @ZF0317
      @ZF0317 3 месяца назад

      @plantor0728 make sure the number in Serial.begin() matches your serial monitor. Default in serial.begin is 115200. While your arduino is plugged in, go to serial monitor and look to the right side of the screen. You'll see a drop down that says some number, probably 9600, and baud. Adjust that to match 115200.

    • @plantor0728
      @plantor0728 3 месяца назад

      @@ZF0317 thanks man, it’s not spitting out mystery symbols now

    • @ZF0317
      @ZF0317 3 месяца назад

      No problem @plantor0728! Let me know if other questions come up.

  • @underyoshi
    @underyoshi 7 дней назад

    Does anyone know if the capacitor on the 5V and ground necessary?

    • @JustBaselmansYT
      @JustBaselmansYT  7 дней назад +1

      Absolutely necessary? Definitely not. Can it help if the audio quality sucks? Yes. Also it depends a bit on what kind of 5V source you are using. I would suggest just try it out. Good luck!

  • @vijakarina
    @vijakarina 5 месяцев назад +1

    Hi! I set my arduino up exactly the same way you did (with the exception of using an Arduino R4 WiFi) and the readout in my serial output is the following over and over:
    Not initialized:
    1. Check the DFPlayer Mini connections
    2. Insert an SD card
    I tried swapping out my R4 for my R3 and I got the same result. I've also isolated all of my components and have tried three different DFPlayer Minis. I'm using a 3-watt, 8-ohm speaker, and I'm using a Mac. Any ideas? I'm at a complete loss at this point.

    • @JustBaselmansYT
      @JustBaselmansYT  5 месяцев назад

      Hi Vijakarina can you try uploading the "GetStarted" sketch that comes with the DFRobotDFPlayerMini library? Please let me know if it does work with that sketch, good luck!

    • @vijakarina
      @vijakarina 5 месяцев назад +1

      @@JustBaselmansYT This is what I'm getting when I run their GetStarted sketch:
      DFRobot DFPlayer Mini Demo
      Initializing DFPlayer ... (May take 3~5 seconds)
      Unable to begin:
      1.Please recheck the connection!
      2.Please insert the SD card!

    • @JustBaselmansYT
      @JustBaselmansYT  5 месяцев назад

      ​@@vijakarina and you are using an external 5V power supply? Because if this is the case and you did check all your connections and check if there are indeed songs on the SD card (which is smaller or equal to 32GB) than in my experience pushing the reset button a few times should be enough to get it working.

    • @vijakarina
      @vijakarina 5 месяцев назад

      @@JustBaselmansYT yeah, unfortunately I've done all of that. I've also gone through and removed the hidden files from the SD card that the macOS loads onto it. I've tried different 32GB microSD cards, I've reformatted them all to FAT32. And I've pressed the reset button a bunch of times, all with the same result. Thanks for your quick responses!

    • @JustBaselmansYT
      @JustBaselmansYT  5 месяцев назад

      @vijakarina I am sorry that it does not work for you :/ but I also do not know what to try expect for a different tutorial with s different circuit and different library

  • @psatire512
    @psatire512 3 месяца назад +1

    What happens if i dont use a resistor?

    • @lamboking8able
      @lamboking8able Месяц назад

      I think you will fry the board because it's based off of 3.3v rather than 5. If using esp32 you don't need it I HEARD. Please look more into it.

  • @person_83049
    @person_83049 4 месяца назад

    What was the external power supplies voltage

    • @JustBaselmansYT
      @JustBaselmansYT  4 месяца назад

      5V direct current

    • @person_83049
      @person_83049 2 месяца назад

      Is it ok with 9v

    • @JustBaselmansYT
      @JustBaselmansYT  2 месяца назад +1

      3.2 ~ 5V is stated in the datasheet of the dfplayer mini so 9V is not recommended. Not sure what will happen but if you are worried about damaging it, then I would not try it.

    • @person_83049
      @person_83049 2 месяца назад

      @@JustBaselmansYT btw what kind of resister are u using

  • @DatFunnyPerson
    @DatFunnyPerson 9 дней назад

    i need a "plays as long as button is held" code. any idea?

    • @lamboking8able
      @lamboking8able 17 часов назад +1

      @DatFunnyPerson control with uart and create a while function for the button being held and "else if" maybe. And have it play the sound and read if the player is playing or not. From there I would either pause or stop when released on the "else" function

    • @DatFunnyPerson
      @DatFunnyPerson 17 часов назад

      @@lamboking8able that's cool but it's like I'm reading Chinese. I'm a real noob and can't code at all haha. I was hoping someone had a code ready or something

    • @lamboking8able
      @lamboking8able 16 часов назад

      @DatFunnyPerson 😂😂 believe it or not I'm a noob as well. But I'm starting to understand it little by little. More so reading code rather than write ot. I recommend (if you think it will help) using copilot or chatgpt. Ask it a thousand questions. It'll help you understand it. But the dfplayer has a "playing" pin. I would say use a (read) function on that pin to any pin on the esp32. And say something like
      if(playButton == high)
      {If(dfActive == high){
      Play(sound1);
      }
      }
      Now again. I'm a noob. I haven't tested this. I'm sure there's a few syntax errors but this is something you might can install into the sample code. I would also recommend asking chatgpt and or copilot to explain it to you. The sample code. It has helped me be able to read it a little better until I can do it on my own.

  • @BINBONIUM
    @BINBONIUM 3 месяца назад

    this may sound dumb buuut what is that green thing.

    • @totallyistimmy
      @totallyistimmy 3 месяца назад +1

      capacitor, it’s not necessary it’s just there to maintain a smooth signal

    • @BINBONIUM
      @BINBONIUM 3 месяца назад

      @@totallyistimmy thanks!

  • @jaykay6290
    @jaykay6290 4 месяца назад +1

    it is a pity that you skipped over the last part of button installation so quickly. i had to playback several times to try and see what you were typing to add the button command. code now gives error 'pinmode' was not declared in this scope.

    • @JustBaselmansYT
      @JustBaselmansYT  4 месяца назад

      Put the following 4 lines of code at the top of you void loop, good luck!:
      if (digitalRead(2) == LOW) {
      Serial.println("now playing track 1");
      myDFPlayer.play(1);
      }

    • @jaykay6290
      @jaykay6290 4 месяца назад

      Okay thank you, your video & instruction is very helpful. I was struggling a lot to get buttons to play tracks. I am making a customer queue manager with 6 pay points, each with a button to press and play sound 'next customer to till 1,2,3..." etc. I have added this to your code and the 6 buttons ( d2 - d7 on arduino uno) are all executing perfectly. void loop() {
      //instruction for button on Digital input 2
      if (digitalRead(2) == LOW) { //reading of digital 2
      Serial.println("now playing track 1"); // serial monitor line display
      myDFPlayer.play(1); // track number/name to play
      delay(1000); //debounce delay
      }
      if (digitalRead(3) == LOW) {
      Serial.println("now playing track 2");
      myDFPlayer.play(2);
      delay(1000);
      }
      if (digitalRead(4) == LOW) {
      Serial.println("now playing track 3");
      myDFPlayer.play(3);
      delay(1000);
      }
      if (digitalRead(5) == LOW) {
      Serial.println("now playing track 4");
      myDFPlayer.play(4);
      delay(1000);
      }
      if (digitalRead(6) == LOW) {
      Serial.println("now playing track 5");
      myDFPlayer.play(5);
      delay(1000);
      }
      if (digitalRead(7) == LOW) {
      Serial.println("now playing track 6");
      myDFPlayer.play(6);
      delay(1000);
      } I would however like to tweak the code more to have the button presses form a digital queue so that if for example: Till 1 presses button 1 and track 1 plays. If then button 2 is pressed while track 1 is still playing it must not interrupt or stop track 1 from playing. Track 2 must queue and play as soon as track 1 is finished and so on. Do you have any advice please? Thank you

    • @zk_6312
      @zk_6312 2 месяца назад

      Pinmode error usually means you did not declare the pin as input or output in the setup section.

  • @DatFunnyPerson
    @DatFunnyPerson 4 месяца назад

    i need a shuffle song code

    • @JustBaselmansYT
      @JustBaselmansYT  4 месяца назад +1

      www.reddit.com/r/arduino/comments/5uweoz/how_can_i_generate_random_numbers_without/

    • @DatFunnyPerson
      @DatFunnyPerson 4 месяца назад

      that doesnt help me because i cant code anything. im a noob. all i can do is copy and paste@@JustBaselmansYT