Steuerung im Seriellen Monitor
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
// RX/TX Port definieren
SoftwareSerial DFPlayerSoftwareSerial(3, 4);
// Name des Players
DFRobotDFPlayerMini mp3Player;
int Lautstaerke = 15;
/*
Schalter für die Pausenfunktion
Pause == true -> Wiedergabe gestoppt
Pause == false -> Wiedergabe neu starten
*/
bool Pause = false;
void setup()
{
DFPlayerSoftwareSerial.begin(9600);
Serial.begin(9600);
delay(1000);
// Player starten
// falls die Parameter true, true nicht funktionieren
// mp3Player.begin(DFPlayerSoftwareSerial, false, true);
mp3Player.begin(DFPlayerSoftwareSerial, true, true);
/*
Equalizer:
mp3Player.EQ(DFPLAYER_EQ_NORMAL);
mp3Player.EQ(DFPLAYER_EQ_POP);
mp3Player.EQ(DFPLAYER_EQ_ROCK);
mp3Player.EQ(DFPLAYER_EQ_JAZZ);
mp3Player.EQ(DFPLAYER_EQ_CLASSIC);
mp3Player.EQ(DFPLAYER_EQ_BASS);
*/
mp3Player.EQ(DFPLAYER_EQ_ROCK);
// Lautstärke 1 .. 30
mp3Player.volume(Lautstaerke);
// zufällige Wiedergabe starten
mp3Player.randomAll();
// Menü
Serial.println("-----------------------------");
Serial.println("n = nächster Titel");
Serial.println("v = voheriger Titel");
Serial.println("+ = Laustärke +");
Serial.println("- = Lautstärke -");
Serial.println("s = Stopp/Weiter");
Serial.println("z = zufällige Wiedergabe");
Serial.println("m = Menü anzeigen");
Serial.println("1-9 = Verzeichnis 1-9 spielen");
Serial.println("-----------------------------");
}
void loop()
{
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
char Zeichen = Serial.read();
// wenn die Eingabe eine Zahl ist
if (isdigit(Zeichen))
{
// char in String umwandeln, anschließend zu int konvertieren
String Zahl = String(Zeichen);
int Nummer = Zahl.toInt();
Serial.println("Spiele Verzeichnis " + String(Nummer));
mp3Player.loopFolder(Nummer);
Pause = false;
}
// - -> Lautstärke -
if (Zeichen == '-')
{
if (Lautstaerke > 2) Lautstaerke = Lautstaerke - 2;
mp3Player.volume(Lautstaerke);
Serial.println("Lautst\u00e4rke: " + String(Lautstaerke));
}
// + -> Lautstärke +
if (Zeichen == '+')
{
if (Lautstaerke <= 28) Lautstaerke = Lautstaerke + 2;
mp3Player.volume(Lautstaerke);
Serial.println("Lautst\u00e4rke: " + String(Lautstaerke));
}
// n -> nächster Titel
if (Zeichen == 'n')
{
mp3Player.next();
Serial.println("Nächster Titel");
}
// v -> vorheriger Titel
if (Zeichen == 'v')
{
mp3Player.previous();
Serial.println("Vorheriger Titel");
}
// s -> Pause/Weiter
if (Zeichen == 's')
{
if (!Pause)
{
mp3Player.stop();
}
if (Pause)
{
mp3Player.start();
}
Pause = !Pause;
if (Pause) Serial.println("Wiedergabe angehalten");
if (!Pause) Serial.println("Wiedergabe fortgesetzt");
}
// z -> zufällige Wiedergabe Titel
if (Zeichen == 'z')
{
mp3Player.randomAll();
Serial.println("Zufällige Wiedergabe gestartet");
Pause = false;
}
// m -> Menü anzeigen
if (Zeichen == 'm')
{
Serial.println("-----------------------------");
Serial.println("n = nächster Titel");
Serial.println("v = voheriger Titel");
Serial.println("+ = Laustärke +");
Serial.println("- = Lautstärke -");
Serial.println("s = Stopp/Weiter");
Serial.println("z = zufällige Wiedergabe");
Serial.println("m = Menü anzeigen");
Serial.println("1-9 = Verzeichnis 1-9 spielen");
Serial.println("-----------------------------");
}
}
}
Steuerung mit Tastenpad
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
// RX/TX Port definieren
SoftwareSerial DFPlayerSoftwareSerial(3, 4);
// Name des Players
DFRobotDFPlayerMini mp3Player;
int Taster;
int Lautstaerke = 20;
/*
Schalter für die Pausenfunktion
Pause == true -> Wiedergabe gestoppt
Pause == false -> Wiedergabe neu starten
*/
bool Pause = false;
void setup()
{
DFPlayerSoftwareSerial.begin(9600);
Serial.begin(9600);
// auf Seriellen Monitor warten
while (!Serial);
Serial.println();
// Player starten
mp3Player.begin(DFPlayerSoftwareSerial, false, true);
/*
Equalizer:
mp3Player.EQ(DFPLAYER_EQ_NORMAL);
mp3Player.EQ(DFPLAYER_EQ_POP);
mp3Player.EQ(DFPLAYER_EQ_ROCK);
mp3Player.EQ(DFPLAYER_EQ_JAZZ);
mp3Player.EQ(DFPLAYER_EQ_CLASSIC);
mp3Player.EQ(DFPLAYER_EQ_BASS);
*/
mp3Player.EQ(DFPLAYER_EQ_ROCK);
// Lautstärke 1 .. 30
mp3Player.volume(Lautstaerke);
// Wiedergabe starten
mp3Player.enableLoopAll();
}
int Tasterabfrage()
{
int Analogwert = analogRead(A0);
// kurzes delay() -> doppelten Tastendruck so weit wie möglich verhindern
delay(200);
//Serial.println(Analogwert);
/*
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)
{
case 0 ... 20:
Taster = 1;
break;
case 30 ... 60:
Taster = 2;
break;
case 70 ... 120:
Taster = 3;
break;
case 150 ... 200:
Taster = 4;
break;
case 300 ... 400:
Taster = 5;
break;
default:
return 0;
}
// gedrückten Taster zurückgeben
return Taster;
}
void loop()
{
Taster = Tasterabfrage();
// Taster links -> Lautstärke -
if (Taster == 1)
{
if (Lautstaerke > 0) Lautstaerke = Lautstaerke - 2;
mp3Player.volume(Lautstaerke);
Serial.println("Lautst\u00e4rke: " + String(Lautstaerke));
}
// Taster oben Mitte -> nächster Titel
if (Taster == 2)
{
mp3Player.next();
}
// Taster unten Mitte -> vorheriger Titel
if (Taster == 3)
{
mp3Player.previous();
}
// Taster rechts -> Lautstärke +
if (Taster == 4)
{
if (Lautstaerke < 30) Lautstaerke = Lautstaerke + 2;
mp3Player.volume(Lautstaerke);
Serial.println("Lautst\u00e4rke: " + String(Lautstaerke));
}
// Taster außen -> Pause/Weiter
if (Taster == 5)
{
if (!Pause)
{
Pause = !Pause;
mp3Player.stop();
}
if (Pause)
{
Pause = !Pause;
mp3Player.start();
}
}
}
Letzte Aktualisierung: