Hallo.
Ich habe gerade ein VS1053 mp3 Shield in Betrieb genommen und möchte
damit einen mp3 Player für die Kids bauen. Dabei möchte ich folgende
Funktionalität abbilden:
Druck auf Knopf 1:
Gehe in Ordner "1" auf der SD Karte und spiele dort die erste Datei ab,
dann die zweite usw...
Druck auf Knopf 2:
Gehe in den Ordner "2" auf der SD Karte und spiele dort die erste Datei
ab, dann die zweite usw...
In meinem Sketch habe ich es schon geschafft, die Ordner zu wechseln
und gezielt Tracks abzuspielen mit z.B.
1 | MP3player.playMP3("track004.mp3");
|
Allerdings bedingt das, das die mp3s dort strukturiert abgelegt werden
müssen.
Gibt es eine Möglichkeit, in Ordner X zu wechseln und von dort die
erste, zweite, dritte Datei usw. abzuspielen?
Mit
wird das ganze ja so wie ich das nachvollzogen habe global auf der SD
Karte gehandhabt.
Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken ;-)
Hier mein aktueller Code zum besseren Verständnis:
1 | #include <SPI.h> // libraries
|
2 | #include <SdFat.h>
|
3 | // #include <SdFatUtil.h>
|
4 | #include <SFEMP3Shield.h>
|
5 |
|
6 | SdFat sd; //SD Karte benennen
|
7 | SFEMP3Shield MP3player; //MP3 Shield als „MP3Player benennen
|
8 |
|
9 | int t=6000; //Der Wert für „t“ gibt im Code den zeitlichen Abstand zwischen dem Abspielen der Datei an.
|
10 |
|
11 |
|
12 | void setup() {
|
13 | Serial.begin (9600);
|
14 | if(!sd.begin(9, SPI_HALF_SPEED)) sd.initErrorHalt(); //SD Karte mit MP3 Dateien auslesen
|
15 | if (!sd.chdir("/")) sd.errorHalt("sd.chdir");
|
16 |
|
17 | MP3player.begin(); //MP3 Shield starten
|
18 | MP3player.setVolume(10,10); //Die Lautstärke einstellen
|
19 |
|
20 | }
|
21 |
|
22 | void loop() {
|
23 |
|
24 | MP3player.available();
|
25 |
|
26 | sd.chdir("/a02/",true);
|
27 | MP3player.playMP3("track003.mp3");
|
28 |
|
29 | delay(3000);
|
30 | sd.chdir("/a03/",true);
|
31 | MP3player.playMP3("track004.mp3");
|
32 |
|
33 | delay(3000);
|
34 |
|
35 | }
|