# include // Bezeichnung der SD-Karte SdFat sd; // Bezeichnung des mp3-Shields vs1053 MP3player; // Variable für das Lesen des Verzeichnisses File Verzeichnis; File Datei; // Tracknummer/Anzahl der Tracks int Track = 1; int TrackMax = 0; void setup() { // Seriellen Monitor starten Serial.begin(9600); // kurze Pause für die koerrekte Anzeige delay(500); // SD Karte starten sd.begin(SD_SEL, SPI_FULL_SPEED); // Anzahl der Tracks im Wurzelverzeichnis zählen // Char-Array für den Dateinamen char Dateiname[13]; if (!sd.chdir("/")) sd.errorHalt("keine SD-Karte vorhanden"); Verzeichnis.open("/"); Serial.println("Dateiname\t\Gr\u00f6\u00dfe"); Serial.println("------------------------------"); while (Datei.openNext(&Verzeichnis, O_READ)) { Datei.getName(Dateiname, sizeof(Dateiname)); // handelt es sich um eine Musikdatei (isFnMusic) if (isFnMusic(Dateiname) ) { Serial.print(Dateiname); // Dateigröße ermitteln, in MB umwandeln, Punkt durch Komma ersetzen float DateiGroesse = Datei.fileSize(); String Groesse = String(DateiGroesse / 1000000); Groesse.replace(".", ","); Serial.println("\t" + Groesse + " MB"); TrackMax ++; } Datei.close(); } Serial.println(); Serial.println("Anzahl der Tracks: " + String(TrackMax)); Serial.println("------------------------------"); // Player starten MP3player.begin(); // Höhen: erlaubte Werte: -8 bis 7 MP3player.setTrebleAmplitude(4); // Bässe: erlaubte Werte 0 bis 15 MP3player.setBassAmplitude(7); // Status des Players ermitteln if (MP3player.getState() == 1) Serial.println("Player erfolgreich gestartet"); // Lautstärke setzen -> links, rechts -> 1, 1 sehr laut // je größer die Werte desto leiser MP3player.setVolume(60, 60); Serial.println(); Serial.println("Welchen Track spielen? 1 bis " + String(TrackMax)); } void loop() { while (Serial.available() > 0) { int Track = Serial.parseInt(); // Enter/Senden gedrückt if (Serial.read() == '\n') { if (Track <= TrackMax) { // kurzes "Beep" spielen MP3player.SendSingleMIDInote(); MP3player.SendSingleMIDInote(); // laufenden Track stoppen/aktuellen Track abspielen MP3player.stopTrack(); Serial.println("Spiele Track " + String(Track)); MP3player.playTrack(Track); } else Serial.println("Der Track " + String(Track) + " existiert nicht!"); } } }