// RFID-Bibiothek hinzufügen
#include "MFRC522.h"
// Player-Bibliothek hinzufügen
#include "SerialMP3Player.h"
#define TX 3
#define RX 4
SerialMP3Player mp3(RX,TX);
int Lautstaerke = 20;
// wenn Pause false -> Wiedergabe stoppen
// wenn Pause true -> Wiedergabe fortsetzen
bool Pause = false;
// Titel, der gespielt werden soll
int aktuellerTitel;
// Anschlüsse RFID definieren
#define RST 9
#define SDA 10
// RFID-Empfänger benennen
MFRC522 mfrc522(SDA, RST);
void setup()
{
Serial.begin(9600);
SPI.begin();
// Serielle Kommunikation mit YX5300 starten
mp3.begin(9600);
// Initialisierung des RFID-Empfängers
mfrc522.PCD_Init();
}
void loop()
{
// Variable für den Wert der Karte
String WertDEZ;
// Wenn keine Karte in Reichweite ist ..
if (!mfrc522.PICC_IsNewCardPresent())
{
// .. wird die Abfrage wiederholt.
return;
}
// Wenn kein RFID-Sender ausgewählt wurde ..
if (!mfrc522.PICC_ReadCardSerial())
{
// .. wird die Abfrage wiederholt.
return;
}
Serial.println(F("Karte entdeckt!"));
// Dezimal-Werte in String schreiben
for (byte i = 0; i < mfrc522.uid.size; i++)
{
WertDEZ = WertDEZ + String(mfrc522.uid.uidByte[i], DEC) + " ";
}
// Kennung dezimal anzeigen
Serial.println("Wert in dezimal: " + WertDEZ);
// Leerzeichen am Ende entfernen
WertDEZ.trim();
// Pause/Weiter
if (WertDEZ == "195 106 18 23")
{
if (Pause) mp3.pause();
else mp3.play();
Pause = !Pause;
}
// ersten Titel spielen
if (WertDEZ == "131 125 21 23")
{
aktuellerTitel = 1;
mp3.stop();
mp3.play();
}
// zweiten Titel spielen
if (WertDEZ == "227 77 233 22")
{
aktuellerTitel = 2;
mp3.stop();
mp3.play(aktuellerTitel, Lautstaerke);
}
// dritten Titel spielen
if (WertDEZ == "3 150 78 21")
{
aktuellerTitel = 3;
mp3.stop();
mp3.play(aktuellerTitel, Lautstaerke);
}
delay(500);
}
Letzte Aktualisierung: