Das Wavy Media Center

Ein Beitrag zum Oster-Contest 25 von Günther Zöppel

                                Elektronik-Labor  Literatur  Projekte  Lernpakete  UKW               



Die guten Empfangseigenschaften des Wavy-Bausatzes legten es nahe, daraus ein „richtiges“ Radio unter Nutzung der wesentlichen Elektronik aus diesem Kit zu bauen. Vor allem soll ein strapazierfähiges Gehäuse mit guter Basswiedergabe und Stereowiedergabe entstehen.
Von einem anderen Projekt hatte ich noch einen Arduino Uno und ein LCD-Display 20x4 sowie einen Endverstärker PAM8403 nebst 2 Lautsprechern 10W/4 Ohm übrig, welche ich für das hier beschriebene WAVY-Radio nutzen wollte. Da mir schon immer mißfiel, dass  bei den älteren  FM-Modulen keine  Frequenzanzeige integriert war, habe ich mir überlegt, die Analogspannung am Steuereingang des WAVY-Moduls , die sich von 0...3,3 V bewegt und eine Frequenzvariation von 87,5 … 108 MHz bewirkt, zur Realisierung einer Skala zu verwenden, die auf dem 20x4 Display ausgegeben werden soll und über den Analogeingang  A0 des Arduino aufbereitet werden kann.



Das Display im einzelnen :
Zeile 1 :
Ausschrift „FM Tuner WAVY 2025“
 Zeile2 :
Anzeige des numerischen Wertes der eingestellten Frequenz von 87,5 … 108 MHz , im geplanten     Sketch in 100 kHz-Stufen einstellbar
Zeile 3 :
Symbolhafte Linearskala aus senkrechten und waagerechten Strichen
Zeile 4 :
Ein Zeigersymbol, welches aus mehreren Pixeln besteht und je nach eingestellter Spannung am Abstimmpoti von links nach rechts unterhalb der Skala aus Zeile 3 wandert.



Der Class-D- Verstärker PAM8403 bietet ausreichend Leistung bei niedrigem Stromverbrauch . Er soll auf externen NF-Eingang umgeschaltet werden können, um auch andere Quellen wiedergeben zu können, wobei das Display  dann in Zeile 2 „Externer Eingang“ und in Zeile 3 die mit dem Arduino Analogeingang A2 gemessene  Batteriespannung anzeigt. Das gesamte Radio soll von 2 Li-Ionen-Akkus 18650 in Serie (8,4 V) betrieben werden, die extern nachgeladen werden können.  Dazu habe ich folgenden Sketch für den Arduino Uno geschrieben :

//Programm Skala WAVY
#include <LiquidCrystal.h>

// LCD-Pins: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

#define A0_PIN A0  // Analoger Eingang für die Frequenz-Steuerspannung
#define A2_PIN A2  // Batteriespannungs-Meßeingang
#define SWITCH_PIN 6 // Digitaler Pin zur Umschaltung

#define V_MIN 0.0   // Minimale Spannung (0V -> 87,5 MHz)
#define V_MAX 3.3   // Maximale Spannung (3.3V -> 108 MHz), evtl nur 3,0 V- messen und anpassen
#define F_MIN 87.5  // Minimaler Frequenzwert
#define F_MAX 108.0 // Maximaler Frequenzwert
#define BATTERY_MAX 8.4 // Maximale Batteriespannung

void setup() {
    pinMode(SWITCH_PIN, INPUT_PULLUP); // Schalter-Pin mit internem Pullup-Widerstand
    lcd.begin(20, 4);
    lcd.print("FM Tuner WAVY 2025");
}

void loop() {
    if (digitalRead(SWITCH_PIN) == LOW) {
        // Externer Eingang aktiv
        lcd.setCursor(0, 1);
        lcd.print("Externer Eingang   ");
       
        // Batteriespannung messen, auf 5V max. geteilt bei Ub= 8.4 V
        float batteryVoltage = analogRead(A2_PIN) * (5.0 / 1023.0) * (BATTERY_MAX / 5.0);
        lcd.setCursor(0, 2);
        lcd.print("Battery: ");
        lcd.print(batteryVoltage, 2);
        lcd.print(" V     ");
       
        // Leere Zeile 4
        lcd.setCursor(0, 3);
        lcd.print("                    ");
    } else {
        // Normale Anzeige
        float voltage = analogRead(A0_PIN) * (5.0 / 1023.0); // Spannungswert berechnen
        voltage = constrain(voltage, V_MIN, V_MAX); // Begrenzen auf den Bereich 0V - 3.3V
        float frequency = mapFloat(voltage, V_MIN, V_MAX, F_MIN, F_MAX); // Frequenz  
        berechnen

        // Zeile 2: Frequenz ausgeben
        lcd.setCursor(0, 1);
        lcd.print(" FREQ: ");
        lcd.print(frequency, 1);
        lcd.print(" MHz   ");

        // Zeile 3: Skala anzeigen
        lcd.setCursor(0, 2);
        lcd.print("|----|----|----|---|");

        // Zeile 4: Zeigerposition berechnen
        int position = map(voltage * 100, V_MIN * 100, V_MAX * 100, 0, 19);
        lcd.setCursor(0, 3);
        lcd.print("                    "); // Löschen
        lcd.setCursor(position, 3);
        lcd.write(byte(255)); // Zeigersymbol
    }

    delay(200); // Kurze Pause zum Aktualisieren der Anzeige
}

// Hilfsfunktion für Gleitkommazahlen
float mapFloat(float x, float in_min, float in_max, float out_min, float out_max) {
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

// Ende


Die einzubindende Bibliothek LiquidCrystal bringt die Arduino IDE von Haus aus mit. Die Hilfsfunktion für die Gleitkommazahlen mittels floatmap erwies sich als nötig, um die Position des Zeigers in Zeile 4 etwa an die der Frequenz entsprechende Skalenstelle des Displays zu mappen, da die Auflösung des AD-Wandlers mit 1024 Werten zu groß für die Skala wäre. Die Frequenzrasterung der Anzeige wurde auf 100 kHz festgelegt. Ansonsten ist der Sketch sehr einfach gehalten und erklärt sich von selbst.



Sicherlich ist bei dem WAVY-Modul auch eine Ausgabe der Frequenz über den I2C-Port des verbauten Prozessors PGS 134 möglich, aber da mir die Interna dieses Prozessors fürs erste noch unbekannt sind und ich mich erst in die Programmierung lt. Datasheet einarbeiten müßte, habe ich den Weg über den mir näher bekannten Arduino Uno gewählt., der sich über die Arduino IDE 1.8.19 bequem über USB flashen lässt.

Nach erfolgreichem Test mit obigem Sketch wurde das eingangs erwähnte Konzept erstellt, mittels dieser Komponenten ein für den Oster-Bastelwettbewerb geeignetes Stereo-Radio zu bauen, welches  die obengenannten Parameter erfüllt. Die Batteriespannung von max. 8,4V aus den 2 in Serie geschalteten Li-Ionen-Akkus reicht aus, das Wavy-Modul über dessen 9V-Eingang zu speisen, da  intern daraus ohnehin stabile 3,3 V (bzw. 3,0 V, messen und im Sketch entsprechend anpassen) erzeugt werden, die zum Betrieb des Chips CL6017S (Empfangs-IC) nötig  und auch für das Abstimmpoti herausgeführt sind. Eine Buchse an der Rückwand wurde zum Nachladen vorgesehen. Beim Laden kann das Radio  ausgeschaltet werden. Der Akku kann auch entnommen werden und das Radio stattdessen über eine an der Ladebuchse anliegende externe Spannung von ca. 9V = betrieben werden. Damit ergab sich folgendes Schaltbild:



Der mechanische Aufbau erfolgte in bewährter Weise mittels Bau eines Sperrholzgehäuses von 38 cm (B) x 14 cm (H) x 14 cm (T), welches mahagonifarben gebeizt und mit Aufklebern (mit Front Designer von Abacom erstellt)  zur eindeutigen Funktionskennzeichnung  versehen wurde. Die Frontplatte wurde an ein etwas stärkeres Holzbrettchen geschraubt, welches als Chassis dient, das Ganze wurde dann in das vorbereitete Gehäuse von vorn eingeschoben und verschraubt.



Auf das Holzbrettchen wurden sämtliche nötigen elektronischen Komponenten, die auf vorbereitete Universal-Leiterplatten montiert wurden, mit kleinen Holzschrauben und Distanzröllchen verschraubt. Bedingt durch das Holzgehäuse  und die vom Class-D-NF-Verstärker PAM8403 angesteuerten etwas größeren Lautsprecher 4 Ohm/10W ergab sich ein sehr ausgewogener Klang mit guter Basswiedergabe und ausgeprägtem Stereo-Effekt (das Zusammenmischen der beiden Stereokanäle des Originalradios wurde aufgehoben) .



Das Bedienkonzept des Original-Wavy-Radios wurde beibehalten, indem die Up/Down-Tasten an die Frontplatte gelegt wurden und der Einschalter an der Rückwand eingebaut wurde. Im Normalfall nutzt man die Durchstimmbarkeit des Frequenzbereiches zur Sendersuche wie im Originalhandbuch als „Reiseradio“ beschrieben,  zumal mit der eingebauten  Dipol-Antenne (Drahtschleife)  der gesamte UKW-Bereich  von 87,5 – 108 MHz empfangbar ist.



Es ist aber problemlos  ein Sendersuchlauf sowie ein Senderspeichern,  so wie im Originalradio-Handbuch beschrieben,  möglich. Damit ist das Radio auch seniorentauglich. Das Radio hat jetzt einen Ehrenplatz in meiner Gästewohnung erhalten und kann von elektronisch interessierten Gästen gern genutzt werden. Die Stromaufnahme aus den Akkus beträgt bei voller Lautstärke ca. 100mA, wobei sich bei einer Kapazität der Akkus von 2Ah eine theroretische  Laufzeit von 20 h ohne Nachladen ergibt.



G. Zöppel
Ostern 2025






Elektronik-Labor  Literatur  Projekte  Lernpakete  Kurzwelle