Wasserdichtes Duschradio mit Arduino Nano, RDA5807, Nokia 5110 LCD & PAM8403
Komponenten und Zubehör
| Bauteil | Menge |
|---|---|
| Arduino Nano R3 | 1 |
| RDA5807 FM-Radio-Modul | 1 |
| Nokia 5110 LCD (3,3–5 V Version) | 1 |
| Tiny RTC Modul (DS1307 + 24C32 EEPROM) | 1 |
| PAM8403 2×3 W Class-D Verstärker | 1 |
| LM2596 DC-DC Step-Down Converter | 1 |
| LIR2032 3,6 V Akku (Knopfzelle) | 1 |
| Widerstände: 100 Ω, 1 kΩ, 10 kΩ (×6), 100 kΩ | je 1 |
| IRLZ44N Power MOSFET | 1 |
| Lautsprecher 4 Ω, 60 W (z. B. PEIYING PY1010C) | 1 |
| 12 V / 3 A Netzteil | 1 |
| 2200 µF / 25 V Elko | 2 |
| 100 µF Elko | 1 |
| 3 W LED (G4 Sockel, Ersatz für Halogen) | 1 |
Projektbeschreibung
Motivation
Die originale Steuerung meiner Duschkabine (TR028 mit Radio) fiel aus. Ein billiges Ersatztgerät hielt nur ein Jahr. Da meine Familie nicht auf Radio in der Dusche verzichten wollte, untersuchte ich die TR028-Hardware: Ein TEA5767 FM-Modul war verbaut. Recherche führte zum RDA5807 – ähnlich, aber mit RDS, Lautstärkeregelung und Bass-Boost. Kein bestehendes Projekt erfüllte jedoch meine Anforderungen vollständig.
Anforderungsprofil (Vision)
- Bedienung über Touchpanel (wasserdicht) – Nutzung des originalen TR028-Touchpanels (2 Spalten × 7 Zeilen Matrix).
- FM-Radio mit RDS (2 Zeilen).
- 6 Speicherplätze für Favoritensender.
- Automatischer & manueller Sendersuchlauf.
- Gefundenen Sender auf einen der 6 Plätze speichern.
- Lautstärke- und Bass-Regelung.
- Duschkabinen-Lichtsteuerung (LED/Halogen).
- Uhr mit Kalender (RTC).
- RSSI (Signalstärke), Stereo-Anzeige.
- Ein/Aus (Standby).
Ergebnis
- FM-Radio mit 2-zeiligem RDS.
- 6 Presets.
- Auto/Manueller Suchlauf.
- Speichern per MEM-Taste + Preset-Wahl innerhalb 4 s.
- Lautstärke (0–15) & Bass-Boost.
- Lichtsteuerung über MOSFET.
- Uhr & Kalender (Wochentag auf Deutsch).
- RSSI-Balken (5 Stufen), Stereo-Indikator.
- Standby-Modus (Display, Verstärker, Licht aus).
Funktionsweise
Einschalten
Nach Netzteil-Anschluss bleibt das Gerät im Standby. Erstes Einschalten: Power-Taste drücken → letzter Sender, Lautstärke 3, Modus „VOLUME“. Ausschalten: Power-Taste → alles aus (Sleep-Mode).
Sendersuche
„Mod“-Taste wechselt zwischen AUTO-TUNE und MAN.-TUNE. „<“/„>“ suchen abwärts/aufwärts. „Mem“ + Preset-Taste (1–6) speichert.
Datum anzeigen
„I“ (Info) zeigt 4 s lang Datum & Wochentag (nutzt delay() – optimierbar).
Uhrenjustage
„D“ gedrückt halten (≥ 2 s) bei Stundensignal (oder exakter Uhr). Loslassen setzt auf hh:00:00. War die Uhr 15–1 min vor, Stunde +1, Min/Sek=00. War sie 1–15 min nach, nur Min/Sek=00.
Hardware-Aufbau
Alle Module auf Lochrasterplatine gelötet. USB-Buchse des Nano entfernt, Kabel direkt angelötet (für spätere Firmware-Updates). Touchpanel-Matrix an digitale Pins 8, 9, 10, 11, 12, 14, 15, 16, 17 (Zeilen/Spalten). RDA5807 & RTC per I²C (A4/A5). PAM8403 an PWM-Pins. LM2596 versorgt Arduino & Verstärker mit 5 V aus 12 V. MOSFET schaltet LED-Licht.
Software-Highlights
- Bibliotheken:
LCD5110_Graph,AT24CX(EEPROM),RDSParser,Radio,RTClib,RDA5807M,Keypad. - Temperaturmessung über NTC an A7 (5 Messwerte, Mittelwert, Steinhart-Hart).
- Sleep-Mode für Display-Backlight im Standby.
- EEPROM speichert letzten Sender, Presets, Lautstärke.
- RDS-Parser zeigt Sender-Name (ServiceName) & Radiotext (scrollend).
Code (Auszug – Hauptschleife)
void loop() {
if (frequency != frequencyOld) { frequencyOld = frequency; mem.writeInt(201, frequency); canal(frequency); }
if (volume != volumeOld) { volumeOld = volume; WriteReg(5, 0x84D0 | volume); }
char key = keypad.getKey();
radio.checkRDS();
// Temperatur alle 600 ms, Mittelwert über 5 Samples
// ... (Code gekürzt)
printSignalStrength(); printLines(); printTime(); printFreq(); printStereo(); printMode(); printMenu(); printDate();
lcd.update();
}
Vollständiger Sketch im Originalprojekt verfügbar.
Verbesserungspotenzial
- RTC-Quarz gegen TCXO tauschen (bessere Ganggenauigkeit).
- Größeres, helleres Display (z. B. 1,8″ TFT) – Nokia 5110 ist schlecht lesbar.
- Stärkeren Verstärker (PAM8610 2×15 W oder TDA7297).
Fazit
Nach einem Monat Betrieb läuft das Radio zuverlässig. Einzig die Uhrgenauigkeit nervt – lösbar durch Quarztausch oder regelmäßiges Nachstellen. Mein erstes Arduino-Projekt, das ich teile; Code ist verbesserungswürdig, funktioniert aber. Fragen gerne in den Kommentaren.
Herstellungsprozess
- Entwicklung und Technik der Radiotechnologie
- Integrierte Schaltkreise (ICs): Kompakte, leistungsstarke Chips, die moderne Elektronik antreiben
- JX Wave Generator – Arduino-kompatibler DDS-Oszillator mit OLED-Display
- MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
- Sichere IoT-Puzzle-Box mit Arduino MKR Bundle bauen – Schritt-für-Schritt
- Intelligenter Dusch-Regulator – Präzise Temperaturkontrolle per Magnetventil
- Kabelloser IR-Temperaturscanner – Arduino Nano mit Bluetooth & MLX90614
- Autonomer Roboter-Panzer bauen: Walabot, Arduino, Raspberry Pi & Alexa-Integration
- Fortgeschrittenes Mikrocontroller-Labor: ESP32, Arduino, PIC und Sensormodule
- MOSMusic: Musik-synchronisierte Lichtsteuerung mit CoolMOS MOSFET & Arduino