Lettore mp3

Saleve,
avevo intenzione di realizzare un lettore mp3 comandato da remoto, che accettasse file da chiave usb, per questo ho comprato uno shield mp3 per Arduino della Elechouse versione V4.1.
Mi sono documentato ed ho trovato uno sketch sul forum di Kenn Sherriff.
Lo sketch seguente però legge i file mp3 da una scheda sd che viene inserita.
Qualcuno potrebbe spiegarmi come è possibile far leggere i dati dalla chavetta USB inserita nell’apposita sede?

sketch:

#include <MP3.h>
#include <SoftwareSerial.h>
#include <IRremote.h>

/** define mp3 class */
MP3 mp3;

int volume = 20;

int irRemotePin = 32;

IRrecv irrecv(irRemotePin);
decode_results results;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(irRemotePin, INPUT);
/** begin function */
//delay(3000);
mp3.begin(MP3_SOFTWARE_SERIAL); // select software serial
//mp3.begin(MP3_HARDWARE_SERIAL); // select hardware serial(or mp3.begin(MP3_HARDWARE_SERIAL):wink:

/** set volum to the default */
mp3.volume(volume);

/** set MP3 Shield CYCLE mode */
mp3.set_mode(MP3::RANDOM);

/** play music in sd, ‘0001’ for first music */
mp3.play_sd(0x0001);
delay(500);
mp3.next();
delay(500);
mp3.next();
// mp3.volume(30);

Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver

/** wait until arduino mp3 shield get ready */

}

// the loop routine runs over and over again forever:
void loop() {

if (irrecv.decode(&results)) {
Serial.println(results.value,HEX);
irrecv.resume(); // Receive the next value
switch(results.value)
{
case 16712445: Serial.println(“OK button pressed”); mp3.pause(); break;
case 16761405: Serial.println(“Next button pressed”); mp3.next(); break;
case 16720605: Serial.println(“Previous button pressed”); mp3.previous();break;
case 16736925: Serial.println(“Volume Up button pressed”);increaseVolume(); mp3.volume(volume);break;
case 16754775: Serial.println(“Volume Down button pressed”);decreaseVolume(); mp3.volume(volume); break;
case 16728765: Serial.println(“Star button pressed”);mp3.set_mode(MP3::CYCLE); break;
case 16732845: Serial.println(“Sharp button pressed”);mp3.set_mode(MP3::RANDOM); break;
}
}
}

void increaseVolume()
{
if(volume<31)
{
volume++;
}
}

void decreaseVolume()
{
if(volume>=1)
{
volume–;
}
}

Grazie mille in anticipo per l’aiuto!!!

sketch_apr10a_OKKKK.ino (1.97 KB)

Prova a mettere mp3.play_usb_disk al posto di mp3.play_sd

Micheleg1: Saleve,

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare. Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Grazie mille per l'aiuto siete stati utilissimi e veramente gentili !!!!! ;) ;) ;)

Te la stai prendendo perché ti hanno risposto in pochi?

Hai postato uno sketch ma non hai fornito il modello del modulo: come pretendi che ti aiutiamo?

Anche io non ho capito se era ironica. Non credo. La libreria della scheda ha la funzione indicata da @Marinaio quindi penso abbia risolto. Certo è che quel venditore/costruttore della scheda da pochissime indicazioni sul suo sito. Pessimo. Ci sono venditori/costruttori che invece hanno addirittura una sezione wiki.