Beim Carbage Run – einer Rallye mit Schrottautos – haben viele Teilnehmer Fanfaren, Megafone oder lustige Sounds abgespielt.
Wir hatten zwar bereits ein Megafon mit Line-In und Bluetooth, aber:
🎛️ "Wenn ich hupen will, will ich auf einen Knopf hauen – nicht erst das Handy entsperren!"
Deshalb: ein eigenständiges Soundboard mit 25 Tasten, SD-Karte und Sofortreaktion.
Alle Bilder findest du im Ordner
docu/. Der aktuelle Verdrahtungsplan steht weiter unten im Abschnitt Schaltung.
- 🎵 24 Soundtasten (A–X) in 5×5 Matrix für direkte Soundauswahl
- 🔁 Sechsfachbelegung:
Y= Mode-Taste + Halten → 144 Sounds (6 Bänke) - 💾 DFPlayer Mini spielt MP3s direkt von SD-Karte
- 📡 Bluetooth-Steuerung per Smartphone-App oder Terminal (alle 144 Tracks)
- 🧠 ESP32 mit frei programmierbarer Logik
- 🧰 3D-gedrucktes Gehäuse
Aktueller Verdrahtungsplan mit DFPlayer Mini (inkl. BUSY → GPIO4) und der 5×5-Tastenmatrix. Quelle als SVG (
docu/wiring_diagram.svg) bzw. zum Neuerzeugendocu/gen_wiring.py(rendert das SVG aus den Pin-Belegungen insrc/main.cpp). Der frühere Wokwi-Entwurf (docu/wokwi/) nutzte ein SD-Kartenmodul als Platzhalter und ist nicht mehr aktuell.
| Zeile (row) | ESP32 Pin |
|---|---|
| R1 | D19 |
| R2 | D18 |
| R3 | D5 |
| R4 | D17 |
| R5 | D16 |
| Spalte (col) | ESP32 Pin |
|---|---|
| C1 | D32 |
| C2 | D33 |
| C3 | D25 |
| C4 | D26 |
| C5 | D27 |
Für die korrekte Verkabelung siehe DFPlayer Mini Dokumentation
| DFPlayer Pin | ESP32 Pin |
|---|---|
| TX | GPIO22 |
| RX | GPIO23 (über 1 kΩ in Reihe) |
| BUSY | GPIO4 |
| VCC | 5V |
| GND | GND |
| ---- | Endstufe |
| SPK1 | Left Audio |
| GND | GND Audio |
| SPK2 | Right Audio |
Der 1 kΩ-Widerstand in der RX-Leitung (ESP-TX → DFPlayer-RX) dämpft Störungen und schützt den DFPlayer-Eingang – eine gängige Empfehlung für stabile UART-Kommunikation.
💾 SD-Karte:
MP3-Dateien im MP3-Verzeichnis, benannt nach Bank*100 + Position:
Bank 1 = 0101–0124, Bank 2 = 0201–0224, … Bank 6 = 0601–0624 (24 pro Bank).
Y spielt keinen Sound, sondern wählt die Bank-Gruppe. Eine Soundtaste kurz drücken oder halten wählt innerhalb der Gruppe die Bank:
Y-Status |
Soundtaste kurz | Soundtaste halten |
|---|---|---|
| – (Standard) | Bank 1 (0101–0124) |
Bank 2 (0201–0224) |
Y kurz tippen |
Bank 3 (0301–0324) |
Bank 4 (0401–0424) |
Y halten |
Bank 5 (0501–0524) |
Bank 6 (0601–0624) |
- Tracknummer = Bank × 100 + Position. Taste A = Position 1, … X = Position 24.
- Der gewählte Mode gilt für den nächsten Sound und springt danach sofort auf Standard (Bank 1 & 2) zurück. Ohne Tastendruck resettet er automatisch nach 10 s; erneutes
Yschaltet ebenfalls zurück. - Dieselbe Taste während der Wiedergabe erneut drücken = Stop.
Zahl (mit \n) an das Gerät das_11lein senden. Die Tracknummer enthält die Bank direkt – einfach die Nummer senden.
| Eingabe | Aktion |
|---|---|
101–624 |
Track direkt abspielen (z. B. 305 = Bank 3, Taste E) |
700–6999 |
Zusatz-/Parkplatz-Track (0700…), nur über die App, kein Hardware-Knopf |
7000–7100 |
Lautstärke auf (Wert−7000) Prozent setzen (0–100 %) |
9999 |
Stop |
9998 / 9997 / 9996 |
Lautstärke 33 / 67 / 100 % (Kompatibilität) |
9995 |
Neustart |
Die Befehlscodes liegen bei
9999absteigend – weit über jeder Tracknummer, daher keine Kollision.
Die zuletzt gesetzte Lautstärke wird im Flash (NVS) gespeichert und beim Booten
wiederhergestellt. Beim Verbinden sendet der ESP einmal READY vol=<n>, damit die
App den aktuellen Stand kennt. WiFi ist deaktiviert (das Gerät nutzt nur Bluetooth).
/
├── src/
│ ├── MP3/ # Arduino-Quellcode
│ └── main.cpp
├── printfiles/ # STL-Dateien für 3D-Druck
├── docu/ # Fotos, Schaltpläne, Screenshots
└── README.md









