Hallo,
ich lese schon längere Zeit mit und ich freue mich sehr, dass sich hier eine so großartige Community gebildet hat!
Ich habe dem Arduino ein Bluetooth-Modul spendiert, damit ich mit dem Handy auf die Box zugreifen kann. Das funktioniert auch ganz gut. Da lassen sich dann auf sehr einfache Weise SleepTimer, etc. realisieren. Die Firmware läuft auch ganz gut.
Nun zu meinem Problem: Wenn ich die Karte herunternehme (spielt die Box weiter, passt!) und wieder auflege, dann spielt die Box den Titel/das Hörbuch wieder von vorne. Aktuell ist die Karte im Hörspiel-Modus konfiguriert.
Irgendwer hat es geschafft, das Verhalten der Tonibox zu implementieren, d.h. Karte runter = Pause, Karte drauf = weiterspielen. Kann mir vielleicht jemand auf die Sprünge helfen, wie ich das (bzw. den zweiten Teil) im Code realisieren kann?
Folgendes habe ich versucht:
- Anlegen eines neuen nfcTagObject newCard;
- Wenn eine neue Karte aufliegt, springt er aus der Loop, liest die neue Karte (newCard) und ich vergleiche, ob Ordner und Mode gleich sind. Falls ja, zurück zu loop, wenn nicht: myCard = newCard; newCard.mode = 0; newCard.folder = 0; und das Programm quasi weiter laufen lassen.
- Das macht er einmal, danach ignoriert er alle Karten, die aufgelegt werden. Vermutlich hängt es bei der MFRC522-Bib, aber ich steig da nicht ganz durch, da die Bib recht komplex ist. Was auffällt: Der springt aus der Loop und betritt sie wieder, auch wenn eine Karte liegen bleibt. Ganz klar ist mir das Verhalten nicht …
nfcTagObject myCard;
nfcTagObject newCard;
…
void loop()
{
Serial.println(„Entering Loop“);
do
{
…
} while (!mfrc522.PICC_IsNewCardPresent());Serial.println(„Leaving loop“);
// RFID Karte wurde aufgelegt
if (!mfrc522.PICC_ReadCardSerial()) return;// EXPERIMENTAL
if (readCard(&newCard) == true)
{
Serial.println(„Read card“);if ((newCard.folder == myCard.folder) && (newCard.mode == myCard.mode))
{
Serial.println(„folder and mode of cards are identical, return to loop“);
return;
}
else
{
Serial.println(„folder and mode of cards are not identical, therefore continue“);
myCard = newCard;
newCard.folder = 0;
newCard.mode = 0;
}
(Wie kann ich Code anzeigen?)
Kann mir wer mit ein paar Tips helfen? Bei Bedarf kann ich auch die Projektdatei zur Verfügung stellen.
Danke und viele Grüße,
iBuddy