Simple yet powerfull enough player. Purchased from: http://www.ebay.com/usr/worldchips
For complete description (in Polish) see: http://www.jarzebski.pl/arduino/komponenty/modul-mp3-z-ukladem-yx5300.html
/* connections
* GND: GND
* VCC: +5V
* TX: Pin 5 (D5)
* RX: Pin 6 (D6)
*/
#include <SoftwareSerial.h>
SoftwareSerial mp3(5, 6);
static uint8_t cmdbuf[8] = {0};
void command(int8_t cmd, int16_t dat)
{
delay(20);
cmdbuf[0] = 0x7e; // bajt startu
cmdbuf[1] = 0xFF; // wersja
cmdbuf[2] = 0x06; // liczba bajtow polecenia
cmdbuf[3] = cmd; // polecenie
cmdbuf[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback
cmdbuf[5] = (int8_t)(dat >> 8); // parametr DAT1
cmdbuf[6] = (int8_t)(dat); // parametr DAT2
cmdbuf[7] = 0xef; // bajt konczacy
for (uint8_t i = 0; i < 8; i++)
{
mp3.write(cmdbuf[i]);
}
}
void setup()
{
Serial.begin(9600);
mp3.begin(9600);
delay(500); // Czekamy 500ms na inicjalizacje
command(0x09, 0x0002); // Wybieramy karte SD jako zrodlo
delay(200); // Czekamu 200ms na inicjalizacje
command(0x06, 0x001E); // Ustaw glosnosc na 30
command(0x03, 0x0001); // Otwarzamy pierwszy utwor (kolejnosc nieposortowana)
}
void loop() { }