Make a simple music player using an Arduino and a SD card reader

Hello,all. I'm going to show you how to make a simple music player using an Arduino and a SD card reader. It is quite simple to use and is fun to make.

Note: This is just for fun and not for serious use. I tried this mainly to learn how to use SD card on Arduino.

Step 1: Components required
  • 1* Arduino (I used Uno)
  • 1* SD card
  • 1* SD card reader for Arduino (I use LC Studio)
  • 8* Jumper cables Male - Female
  • A couple of Male - Male jumper cables
  • 3* Push Buttons (tactile switches) (as the controls for the music player)
  • 3* 10 k ohm resistors
  • 1* Breadboard
  • 1* Speaker (low wattage speaker that doesn't need separate power - see the attached picture)
PS: my speaker was bought from http://www.kynix.com/Product/Cate/590.html

Step 2: Making the player

Create the circuit as shown in the fritzing image above. Make sure you wire the SD card reader correctly as you don't want to risk damaging your SD card. Here are all the SD card connections. (You don't need to worry about these if you are using a SD shield, but if you are using a module you need to wire it up.)
HTML Code:
+-----------+---------------------------------+
| SD module | Arduino (UNO) |
+-----------+---------------------------------+
| Gnd | Gnd |
| 3.3v | 3.3v |
| 5v | 5v |
| CS | pin 4 (Pin 53 on Arduino Mega) |
| MOSI | pin 11 (Pin 51 on Arduino Mega) |
| SCK | pin 13 (Pin 52 on Arduino Mega) |
| MISO | pin 12 (Pin 50 on Arduino Mega) |
| Gnd | Gnd |
+-----------+---------------------------------+

Additionally, the speaker connection should be as follows:

Speaker - Pin 9 (Pin 11 on Arduino Mega) (This is required for TMRpcm library that is used with this code)
The switches should be connected to pin 5, 6, 7 (Respectively - Rewind to first file, Play, Next File).
Go to the Arduino IDE. Include the downloaded library by going to Sketch > Include Library > Add Zip file.

Now upload the code given below onto your Arduino board.

Step 3: Prepare the SD card
Now you need to format the SD card.Once you have formatted the SD card, you need to put in a few music files. The libraries I have used only support .WAV files.

If you don't have WAV files, you can use the link below to convert your mp3 to WAV. The library supports files with 8-32 khz Sample Rate (I used 16 kHz), 8 bit per sample, mono channel.Since I had used FAT system, I had to rename the WAV file to 8.3 format (you may need to do the same). Then copy the files into the SD card.

Step 4: Use It!!

Plug in your SD card into the reader and connect your Arduino to your PC/Comp. Click on Serial Monitor and after a few seconds the first music file's name on your SD card will appear. To move to the next file press the push button connected to pin 7. To go to the first file press the button connected pin 5. To play a file press the button connected to pin 6. And that's it, enjoy!!!

Please note that I used only 3 controls (Go to first file, Next file, Play), but you can obviously use more controls as you wish. Of course, you would need to modify the program accordingly.

PS- Thanks a lot for looking at my write up. If you have any suggestions please do tell me.