Inhalt
Mit kodierten Karten, einem RFID-Kartenlesegerät und dem YX5300-Modul soll ein mp3-Spieler realisiert werden.
Die Hardware
Der YX5300 verfügt über einen 3,5 mm Klinkenstecker, die Musik wird von einer SD-Karte abgespielt.
Für einen kindersicheren Betrieb lassen sich sowohl Arduino als auch Lautsprecher mit Akkus betreiben.
Natürlich fehlt hier noch eine Gehäuse aus dem 3D-Drucker.
Beispiele für kodierte Karten
Benötigte Bauteile
- YX5300-Modul
- RFID-Kartenleser
- externer Lautsprecher mit 3,5 mm Klinkenstecker
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Vorbereitungen
Kodierung der Karten feststellen
Als Erstes musst du mit einem Programm die Kennung der Karten herausfinden und notieren.
Benötigte Bibliotheken:
Das Programm
// RFID-Bibiothek hinzufügen
# include <MFRC522.h>
// Anschlüsse definieren
# define SDA 10
# define RST 9
// RFID-Empfänger benennen
MFRC522 mfrc522(SDA, RST);
void setup()
{
Serial.begin(9600);
SPI.begin();
// Initialisierung des RFID-Empfängers
mfrc522.PCD_Init();
}
void loop()
{
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-Wert in Strings schreiben
for (byte i = 0; i < mfrc522.uid.size; i++)
{
WertDEZ = WertDEZ + String(mfrc522.uid.uidByte[i], DEC) + " ";
}
// Kennung dezimal anzeigen
Serial.println("Dezimalwert: " + WertDEZ);
delay(1000);
}
Der mp3-Spieler
Bibliotheken und Variablen
// 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);
Der setup-Teil
void setup()
{
Serial.begin(9600);
SPI.begin();
// Serielle Kommunikation mit YX5300 starten
mp3.begin(9600);
// Initialisierung des RFID-Empfängers
mfrc522.PCD_Init();
}
Der loop-Teil
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(aktuellerTitel, Lautstaerke);
}
// zweiten Titel spielen
if (WertDEZ == "227 77 233 22")
{
aktuellerTitel = 2;
mp3.stop();
mp3.play(aktuellerTitel, Lautstaerke);
}
delay(500);
}
Verwandte Anleitungen:
- Jukebox mit Klingeltönen
- mp3-Player mit dem DFPlayerMini
- mp3-Player mit einem mp3-Shield
- Melodien spielen
- Musik mit den Touch-Pins des ESP32-Wroom
- Spieluhr mit dem Tastenpad
- Töne erzeugen mit dem Tastenfeld
- UKW-Radio mit dem TEA5767-Modul
- Würfelspiel mit einem mp3-Shield
Letzte Aktualisierung: