# include "SoftwareSerial.h"
# include "DFRobotDFPlayerMini.h"
// wird für die Abfrage von Wertebereichen mit switch benötigt
# include <stdio.h>
// RX/TX Port definieren
SoftwareSerial DFPlayerSoftwareSerial(4, 3);
// Name des Players
DFRobotDFPlayerMini mp3Player;
int Taster;
int Analogwert = 0;
int Lautstaerke = 10;
/*
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);
/*
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);
// Anzahl der Dateien auf der SD-Karte feststellen und anzeigen
int AnzahlDateien = mp3Player.readFileCounts();
// wenn sich auf der SD-Karte keine Daten befinden
if (AnzahlDateien == -1)
{
Serial.println("Der Ordner enth\u00e4lt keine Musikdateien!");
Serial.println("das Programm wird beendet!");
while (1);
}
// die SD-Karte enthält Daten
else
{
Serial.println(String(AnzahlDateien) + " Dateien auf der SD-Karte ");
Serial.println("Lautst\u00e4rke: " + String(mp3Player.readVolume()));
// 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);
/* für die Abfrage von Wertebereichen muss
#include <stdio.h> eingebunden werden
A0 gibt je nach Taster einen Wert aus
über den Seriellen Monitor wird dieser Wert angezeigt
und kann dann eventuell angepasst werden
*/
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);
}
// 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: