mp3-Player mit einem mp3-Shield

Lesezeit: 9 Minuten

Seite als PDF

Die Hardware

Ein Shield ist ein Bauteil, das auf einen Arduino UNO aufgesteckt wird. Das mp3-Shield VS1053 ver­fügt über u. a. über einen Decoder für mp3 und einen Steck­platz für Mini-SD-Karten. Es wer­den zwar alle dig­i­tal­en und analo­gen Anschlüsse her­aus­ge­führt, sie sind aber nur sehr eingeschränkt nutzbar.

Das Shield ver­wen­det den ⇒SPI-Bus und auch noch andere dig­i­tale Pins, die für die Ans­teuerung des Shields benötigt wer­den. Daher sind nur die 🔗dig­i­tal­en Pins 5 und 10 uneingeschränkt nutzbar.

Ziel des Projekts

mp3-Dateien sollen von ein­er SD-Karte abge­spielt wer­den. Du benötigst eine Micro-SD-Karte, die mit FAT32 for­matiert wurde.
Kopiere mehrere mp3-Dateien auf die SD-Karte.
Du musst die Namen nach fol­gen­dem Muster ändern und num­merieren:
track001.mp3, track002.mp3, track003.mp3 …

Der Play­er soll mit einem Tas­ten­feld mit vier Tas­ten oder mit ein­er Fernbe­di­enung ges­teuert wer­den.

Benötigte Bibliotheken

Funktionen der Bibliothek VS1053

Schlüs­sel­wortAktion
begin()Play­er starten
get­State()Sta­tus des Play­ers abfra­gen
0 = der Play­er wurde nicht ges­tartet
1 = der Start des Play­ers war erfol­gre­ich
playTrack(Nummer)
track001.mp3 → playTrack(1)
track002.mp3 → playTrack(2)
spielt den Track (Num­mer)
Track darf eine wav oder mp3-Datei sein
playMP3(Dateiname)
track001.mp3 → playMP3(track001.mp3)
track002.mp3 → playMP3(track002.mp3)
im Unter­schied zu play­Track()
dür­fen Dateina­men angegeben wer­den
stop­Track()stoppt den ger­ade laufend­en Track
pause­Mu­sic()pausiert den ger­ade laufend­en Track
resumeMu­sic()set­zt die Wieder­gabe nach der Pause fort
isPlay­ing()stellt fest, ob ger­ade die Wieder­gabe läuft
0 = es wird nichts abge­spielt
1 = es wird eine Track abge­spielt
setVolume(links, rechts)Laut­stärke set­zen -> links, rechts
1, 1 sehr laut
je größer der Wert, desto leis­er
setVolume(beide_Kanäle)set­zt die Laut­stärke für links/rechts auf den gle­ichen Wert
setBassAmplitude(Wert);Bässe ein­stellen: erlaubte Werte: 0 bis 15
setTrebleAmplitude(Wert)Höhen ein­stellen: erlaubte Werte: ‑8 bis 7
SendS­in­gleMIDInote()spielt ein „Beep“

Player im Seriellen Monitor

Beispiel: ein­fach­er mp3-Play­er mit Steuerung über den Seriellen Mon­i­tor

Player mit Tastenfeld

Die Bele­gung der Tas­ten:

  • 1: ein Titel vor­wärts
  • 2: ein Titel zurück
  • 3: Titel nach ein­er Pause weit­er spie­len
  • 4: Titel pausieren

Das Tastenfeld

Der Schaltplan

Bibliotheken und Variable

Im Kopf des Pro­gramms wer­den die benötigten Bib­lio­theken einge­bun­den und die Vari­ablen definiert.

Der setup-Teil

Der loop-Teil

Funktionen

im loop-Teil wer­den mehrere ⇒Funk­tio­nen aufgerufen:

Player mit Fernbedienung

Ver­schiedene Infrarot-Empfänger mit VS1838B-Mod­ul

Die Ver­wen­dung ein­er ⇒Fernbe­di­enung (Keyes-Fernbe­di­enung) bietet mehr Möglichkeit­en, den Play­er zu steuern:

  • Pfeil links: vorheriger Titel
  • Pfeil rechts: näch­ster Titel
  • Pfeil unten: Laut­stärke um 5 ver­ringern
  • Pfeil oben: Laut­stärke um 5 erhöhen
  • OK: Zufalls­gen­er­a­tor auss­chal­ten

Testprogramm Keyes-Fernbedienung

Testprogramm beliebige Fernbedienung

Der Zufalls­gen­er­a­tor ist lei­der nur ein “Pseudo”-Zufallsgenerator. Nach jedem Neustart des Pro­gramms startet der Play­er immer mit dem gle­ichen Titel. Er prüft auch nicht, ob der nach­fol­gende Titel nicht erst kurzem abge­spielt wurde. Ich denke aber, dass die zufäl­lige Rei­hen­folge umso brauch­bar­er wird, je mehr Titel auf der SD-Karte vorhan­den sind.

Mit der Taste “OK” auf der Fernbe­di­enung wird der Zufalls­gen­er­a­tor ein- oder aus­geschal­tet.

Der Schaltplan

Das Programm

Quellen


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Verwandte Anleitungen:


    Letzte Aktualisierung: Okt. 24, 2025 @ 11:39