Arduino UNO
#include "TEA5767Radio.h"
#include "Wire.h"
#include "LCDIC2.h"
// 4-zeiliges Display
LCDIC2 lcd(0x27, 20, 4);
// String für die Eingabe im Seriellen Monitor
String Eingabe;
// Name des Radios
TEA5767Radio radio = TEA5767Radio();
/*
Senderliste nach Bundesländern
-------------------------------------------------------------------------
NRW: https://www.bandscan.de/listen/nrw.php
Baden-Württemberg: https://www.bandscan.de/listen/baden_wuerttemberg.php
Rheinland-Pfalz&Saarland: https://www.bandscan.de/listen/rpsaar.php
Bayern: https://www.bandscan.de/listen/bayern.php
Schleswig-Holstein&Hamburg: https://www.bandscan.de/listen/hamburg_sh.php
Berlin&Brandenburg: https://www.bandscan.de/listen/berlin.php
Sachsen: https://www.bandscan.de/listen/sachsen.php
Sachsen-Anhalt: https://www.bandscan.de/listen/sachsen-anhalt.php
Hessen: https://www.bandscan.de/listen/hessen.php
Niedersachsen&Bremen: https://www.bandscan.de/listen/nds.php
Mecklenburg-Vorpommern: https://www.bandscan.de/listen/meckp.php
Thüringen: https://www.bandscan.de/listen/thueringen.php
------------------------------------------------------------------------
Senderliste Raum Köln
1Live 87,6
bigFM 104.9
Deutschlandfunk 89,1
Radio Berg 99.7
Radio Köln 107.1
RPR1 103.5
SWR1 92.4
SWR3 94.8
SWR4 97.4
WDR2 98.6
WDR3 95.9
WDR4 90,7
WDR5 88.0
*/
// Anzahl der Sender
#define Anzahl 5
// Variable für den gewählten Sender
int SenderNummer;
// Namen der Sender
String Senderliste[Anzahl] =
{
"WDR2 ", "1Live", "WDR4 ", "Radio Berg", "SWR3"
};
// Frequenzen der Sender
float Frequenzliste[Anzahl]
{
98.6, 87.6, 90.7, 99.7, 94.8
};
void setup()
{
Wire.begin();
Serial.begin(9600);
// LCD starten
lcd.begin();
// Cursor "verstecken"
lcd.setCursor(false);
}
void loop()
{
// Tasten des Tastenpads abfragen
SenderNummer = Tasterabfrage();
// -1 -> keine Taste gedrückt
if (SenderNummer !=-1)
{
// Namen und Frequenz des gewählten Senders anzeigen
lcd.clear();
radio.setFrequency(Frequenzliste[SenderNummer]);
lcd.setCursor(0, 0);
lcd.print("Sender: " + Senderliste[SenderNummer]);
lcd.setCursor(0, 1);
// . durch , ersetzen
String Frequenz = String(Frequenzliste[SenderNummer]);
Frequenz.replace(".", ",");
lcd.print("Frequenz: " + Frequenz);
}
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
String Eingabe = Serial.readStringUntil('\n');
// letztes Zeichen entfernen
Eingabe.substring(0, Eingabe.length() - 1);
// Eingabe in Großbuchstaben umwandeln
// Groß- und Kleinschreibung der Eingabe möglich
Eingabe.toUpperCase();
// Eingabe abfragen -> Zählung beginnt mit 0
if (Eingabe == "WDR2")
{
SenderNummer = 0;
}
if (Eingabe == "1LIVE")
{
SenderNummer = 1;
}
if (Eingabe == "WDR4")
{
SenderNummer = 2;
}
if (Eingabe == "RADIOBERG")
{
SenderNummer = 3;
}
if (Eingabe == "SWR3")
{
SenderNummer = 4;
}
// Namen und Frequenz des gewählten Senders anzeigen
lcd.clear();
radio.setFrequency(Frequenzliste[SenderNummer]);
lcd.setCursor(0, 0);
lcd.print("Sender: " + Senderliste[SenderNummer]);
lcd.setCursor(0, 1);
// . durch , ersetzen
String Frequenz = String(Frequenzliste[SenderNummer]);
Frequenz.replace(".", ",");
lcd.print("Frequenz: " + Frequenz);
Serial.println("Sender: " + Senderliste[SenderNummer]);
Serial.println("Frequenz: " + Frequenz);
}
// String Eingabe leeren
Eingabe = "";
}
int Tasterabfrage()
{
int Analogwert = analogRead(A0);
// kurzes delay() -> doppelten Tastendruck so weit wie möglich verhindern
delay(200);
/*
A0 gibt je nach Taster einen Wert aus
über den Seriellen Monitor wird dieser Wert angezeigt
und kann dann eventuell angepasst werden
*/
// Serial.println(Analogwert);
switch (Analogwert)
{
// links
case 0 ... 20:
SenderNummer = 0;
break;
// oben
case 30 ... 60:
SenderNummer = 1;
break;
// unten
case 70 ... 120:
SenderNummer = 2;
break;
// rechts
case 150 ... 200:
SenderNummer = 3;
break;
// rechts außen
case 300 ... 400:
SenderNummer = 4;
break;
// keine Taste gedrückt
default:
return -1;
}
// gedrückte Taste zurückgeben
return SenderNummer;
}
D1 Mini
#include "TEA5767Radio.h"
#include "Wire.h"
#include "LCDIC2.h"
// 4-zeiliges Display
LCDIC2 lcd(0x27, 20, 4);
// String für die Eingabe im Seriellen Monitor
String Eingabe;
// Name des Radios
TEA5767Radio radio = TEA5767Radio();
/*
Senderliste nach Bundesländern
-------------------------------------------------------------------------
NRW: https://www.bandscan.de/listen/nrw.php
Baden-Württemberg: https://www.bandscan.de/listen/baden_wuerttemberg.php
Rheinland-Pfalz&Saarland: https://www.bandscan.de/listen/rpsaar.php
Bayern: https://www.bandscan.de/listen/bayern.php
Schleswig-Holstein&Hamburg: https://www.bandscan.de/listen/hamburg_sh.php
Berlin&Brandenburg: https://www.bandscan.de/listen/berlin.php
Sachsen: https://www.bandscan.de/listen/sachsen.php
Sachsen-Anhalt: https://www.bandscan.de/listen/sachsen-anhalt.php
Hessen: https://www.bandscan.de/listen/hessen.php
Niedersachsen&Bremen: https://www.bandscan.de/listen/nds.php
Mecklenburg-Vorpommern: https://www.bandscan.de/listen/meckp.php
Thüringen: https://www.bandscan.de/listen/thueringen.php
------------------------------------------------------------------------
Senderliste Raum Köln
1Live 87,6
bigFM 104.9
Deutschlandfunk 89,1
Radio Berg 99.7
Radio Köln 107.1
RPR1 103.5
SWR1 92.4
SWR3 94.8
SWR4 97.4
WDR2 98.6
WDR3 95.9
WDR4 90,7
WDR5 88.0
*/
// Anzahl der Sender
#define Anzahl 5
// Variable für den gewählten Sender
int SenderNummer;
// Namen der Sender
String Senderliste[Anzahl] =
{
"WDR2 ", "1Live", "WDR4 ", "Radio Berg", "SWR3"
};
// Frequenzen der Sender
float Frequenzliste[Anzahl]
{
98.6, 87.6, 90.7, 99.7, 94.8
};
void setup()
{
Wire.begin();
Serial.begin(9600);
// LCD starten
lcd.begin();
// Cursor "verstecken"
lcd.setCursor(false);
}
void loop()
{
// Tasten des Tastenpads abfragen
SenderNummer = Tasterabfrage();
// -1 -> keine Taste gedrückt
if (SenderNummer !=-1)
{
// Namen und Frequenz des gewählten Senders anzeigen
lcd.clear();
radio.setFrequency(Frequenzliste[SenderNummer]);
lcd.setCursor(0, 0);
lcd.print("Sender: " + Senderliste[SenderNummer]);
lcd.setCursor(0, 1);
// . durch , ersetzen
String Frequenz = String(Frequenzliste[SenderNummer]);
Frequenz.replace(".", ",");
lcd.print("Frequenz: " + Frequenz);
}
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
String Eingabe = Serial.readStringUntil('\n');
// letztes Zeichen entfernen
Eingabe.substring(0, Eingabe.length() - 1);
// Eingabe in Großbuchstaben umwandeln
// Groß- und Kleinschreibung der Eingabe möglich
Eingabe.toUpperCase();
// Eingabe abfragen -> Zählung beginnt mit 0
if (Eingabe == "WDR2")
{
SenderNummer = 0;
}
if (Eingabe == "1LIVE")
{
SenderNummer = 1;
}
if (Eingabe == "WDR4")
{
SenderNummer = 2;
}
if (Eingabe == "RADIOBERG")
{
SenderNummer = 3;
}
if (Eingabe == "SWR3")
{
SenderNummer = 4;
}
// Namen und Frequenz des gewählten Senders anzeigen
lcd.clear();
radio.setFrequency(Frequenzliste[SenderNummer]);
lcd.setCursor(0, 0);
lcd.print("Sender: " + Senderliste[SenderNummer]);
lcd.setCursor(0, 1);
// . durch , ersetzen
String Frequenz = String(Frequenzliste[SenderNummer]);
Frequenz.replace(".", ",");
lcd.print("Frequenz: " + Frequenz);
Serial.println("Sender: " + Senderliste[SenderNummer]);
Serial.println("Frequenz: " + Frequenz);
}
// String Eingabe leeren
Eingabe = "";
}
int Tasterabfrage()
{
int Analogwert = analogRead(A0);
// kurzes delay() -> doppelten Tastendruck so weit wie möglich verhindern
delay(200);
/*
A0 gibt je nach Taster einen Wert aus
über den Seriellen Monitor wird dieser Wert angezeigt
und kann dann eventuell angepasst werden
*/
Serial.println(Analogwert);
switch (Analogwert)
{
// links
case 0 ... 20:
SenderNummer = 0;
break;
// oben
case 30 ... 100:
SenderNummer = 1;
break;
// unten
case 120 ... 180:
SenderNummer = 2;
break;
// rechts
case 200 ... 300:
SenderNummer = 3;
break;
// rechts außen
case 500 ... 600:
SenderNummer = 4;
break;
// keine Taste gedrückt
default:
return -1;
}
// gedrückte Taste zurückgeben
return SenderNummer;
}
ESP32-Wroom
#include "TEA5767Radio.h"
#include "Wire.h"
#include "LCDIC2.h"
// 4-zeiliges Display
LCDIC2 lcd(0x27, 20, 4);
// String für die Eingabe im Seriellen Monitor
String Eingabe;
// Name des Radios
TEA5767Radio radio = TEA5767Radio();
/*
Senderliste nach Bundesländern
-------------------------------------------------------------------------
NRW: https://www.bandscan.de/listen/nrw.php
Baden-Württemberg: https://www.bandscan.de/listen/baden_wuerttemberg.php
Rheinland-Pfalz&Saarland: https://www.bandscan.de/listen/rpsaar.php
Bayern: https://www.bandscan.de/listen/bayern.php
Schleswig-Holstein&Hamburg: https://www.bandscan.de/listen/hamburg_sh.php
Berlin&Brandenburg: https://www.bandscan.de/listen/berlin.php
Sachsen: https://www.bandscan.de/listen/sachsen.php
Sachsen-Anhalt: https://www.bandscan.de/listen/sachsen-anhalt.php
Hessen: https://www.bandscan.de/listen/hessen.php
Niedersachsen&Bremen: https://www.bandscan.de/listen/nds.php
Mecklenburg-Vorpommern: https://www.bandscan.de/listen/meckp.php
Thüringen: https://www.bandscan.de/listen/thueringen.php
------------------------------------------------------------------------
Senderliste Raum Köln
1Live 87,6
bigFM 104.9
Deutschlandfunk 89,1
Radio Berg 99.7
Radio Köln 107.1
RPR1 103.5
SWR1 92.4
SWR3 94.8
SWR4 97.4
WDR2 98.6
WDR3 95.9
WDR4 90,7
WDR5 88.0
*/
// Anzahl der Sender
#define Anzahl 5
int SenderNummer;
// Namen der Sender
String Senderliste[Anzahl] =
{
"WDR2 ", "1Live", "WDR4 ", "Radio Berg", "SWR3"
};
// Frequenzen der Sender
float Frequenzliste[Anzahl]
{
98.6, 87.6, 90.7, 99.7, 94.8
};
void setup()
{
Wire.begin();
Serial.begin(9600);
// LCD starten
lcd.begin();
// Cursor "verstecken"
lcd.setCursor(false);
}
void loop()
{
// Tasten des Tastenpads abfragen
SenderNummer = Tasterabfrage();
// -1 -> keine Taste gedrückt
if (SenderNummer !=-1)
{
// Namen und Frequenz des gewählten Senders anzeigen
lcd.clear();
radio.setFrequency(Frequenzliste[SenderNummer]);
lcd.setCursor(0, 0);
lcd.print("Sender: " + Senderliste[SenderNummer]);
lcd.setCursor(0, 1);
// . durch , ersetzen
String Frequenz = String(Frequenzliste[SenderNummer]);
Frequenz.replace(".", ",");
lcd.print("Frequenz: " + Frequenz);
}
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
String Eingabe = Serial.readStringUntil('\n');
// letztes Zeichen entfernen
Eingabe.substring(0, Eingabe.length() - 1);
// Eingabe in Großbuchstaben umwandeln
// Groß- und Kleinschreibung der Eingabe möglich
Eingabe.toUpperCase();
// Eingabe abfragen -> Zählung beginnt mit 0
if (Eingabe == "WDR2")
{
SenderNummer = 0;
}
if (Eingabe == "1LIVE")
{
SenderNummer = 1;
}
if (Eingabe == "WDR4")
{
SenderNummer = 2;
}
if (Eingabe == "RADIOBERG")
{
SenderNummer = 3;
}
if (Eingabe == "SWR3")
{
SenderNummer = 4;
}
// Namen und Frequenz des gewählten Senders anzeigen
lcd.clear();
radio.setFrequency(Frequenzliste[SenderNummer]);
lcd.setCursor(0, 0);
lcd.print("Sender: " + Senderliste[SenderNummer]);
lcd.setCursor(0, 1);
// . durch , ersetzen
String Frequenz = String(Frequenzliste[SenderNummer]);
Frequenz.replace(".", ",");
lcd.print("Frequenz: " + Frequenz);
Serial.println("Sender: " + Senderliste[SenderNummer]);
Serial.println("Frequenz: " + Frequenz);
}
// String Eingabe leeren
Eingabe = "";
}
int Tasterabfrage()
{
int Analogwert = analogRead(35);
// kurzes delay() -> doppelten Tastendruck so weit wie möglich verhindern
delay(200);
/*
G35 gibt je nach Taster einen Wert aus
über den Seriellen Monitor wird dieser Wert angezeigt
und kann dann eventuell angepasst werden
*/
Serial.println(Analogwert);
switch (Analogwert)
{
// links
case 0 ... 50:
SenderNummer = 0;
break;
// oben
case 100 ... 200:
SenderNummer = 1;
break;
// unten
case 300 ... 700:
SenderNummer = 2;
break;
// rechts
case 900 ... 1200:
SenderNummer = 3;
break;
// rechts außen
case 1800 ... 2500:
SenderNummer = 4;
break;
// keine Taste gedrückt
default:
return -1;
}
// gedrückte Taste zurückgeben
return SenderNummer;
}
Letzte Aktualisierung: