Zufallswiedergabe Probleme

Hallo,
ich habe mir deinen tollen Tonuino nachgebaut, nur leider habe ich zwei Probleme.

  1. ich hab das gleiche Problem wie Marc auf der Homepageseite, dass sich meine Karte nicht beschreiben lässt.Auch bei mir ist der erste Block belegt und das ändern der Böocks hat nichts gebracht. Der beiliegende Schlüsselanhänger ließ sich problemlos zuweisen
    und nun komme ich zu
  2. Wenn ich den Anhänger drauf lege wird immer nur Track eins oder Track 43 gespielt. Ich bin mir nicht sicher ob der Zufallsgenerator bei mir wirklich funktioniert oder ob es am Befehl random() liegt, da dieser ja eigentlich immer nur eine Art Zahlenkette hat

Ich würde mich riesig freuen wenn mir jemand weiterhelfen könnte!
LG

Also zum Problem mit dem Schreiben auf die Karten hat bisher immer geholfen den Abstand zwischen RFID Modul und Karte zu verändern (meinst so 2-3 cm mit irgendwas dazwischen)

Mit random() finde ich komisch. Müsste ich mir mal anschauen. Hast du den aktuellsten Sourcecode genommen?

Eigentlich wir der Zufallsgenerator auch initialisiert und vor allem sollte er gerade wenn der Nano länger an ist ja schon mehr als zwei Werte ausgeben. Komisch…

Kann ich bestätigen, mit dem Abstand. Wenn Du bei AZ Delivery bestellt hast kommen einige Teile in einem dieser etwa zigarettenschachtelgrossen Kartons, wenn Du den zwischen Reader und Karte legst funktioniert es. Da es nur beim Beschreiben notwendig ist finde ich das nicht so dramatisch, wenn man’s mal raushat kann man die Karte auch einfach einen Finger breit über den Reader halten.

Danke, für die schnelle Antwort,
dass mit dem Abstand und auch mit anderem Netzeilen habe ich schon ausprobiert. Ich habe mir ein paar neue bestellt (hatte nur 2), Mal sehen ob es dann besser funktioniert,

Ich habe den Code am 03.11 von github runtergeladen

Hallo,

ich habe nun auch das Problem in einem Ordner:

Es wird immer 1 oder 8 abgespielt.

07:41:39.697 -> === disablestandby()
07:41:40.732 -> 14 Dateien in Ordner 21
07:41:40.732 -> Hörspielmodus -> zufälligen Track wiedergeben
07:41:40.779 -> 8
07:41:44.034 -> Card UID: D6 BA FB 7C
07:41:44.034 -> PICC type: MIFARE 1KB
07:41:44.034 -> Authenticating using key A...
07:41:44.034 -> Current data in sector:
07:41:44.034 ->    1      7   00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF  [ 0 0 1 ] 
07:41:44.081 ->           6   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:44.081 ->           5   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:44.081 ->           4   13 37 B3 47  02 15 01 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:44.081 -> 
07:41:44.081 -> Reading data from block 4 ...
07:41:44.081 -> Data in block 4:
07:41:44.081 ->  13 37 B3 47 02 15 01 00 00 00 00 00 00 00 00 00
07:41:44.128 -> 
07:41:44.128 -> === disablestandby()
07:41:45.225 -> 14 Dateien in Ordner 21
07:41:45.225 -> Hörspielmodus -> zufälligen Track wiedergeben
07:41:45.225 -> 1
07:41:50.303 -> Card UID: D6 BA FB 7C
07:41:50.303 -> PICC type: MIFARE 1KB
07:41:50.303 -> Authenticating using key A...
07:41:50.349 -> Current data in sector:
07:41:50.349 ->    1      7   00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF  [ 0 0 1 ] 
07:41:50.349 ->           6   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:50.349 ->           5   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:50.349 ->           4   13 37 B3 47  02 15 01 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:50.396 -> 
07:41:50.396 -> Reading data from block 4 ...
07:41:50.396 -> Data in block 4:
07:41:50.396 ->  13 37 B3 47 02 15 01 00 00 00 00 00 00 00 00 00
07:41:50.396 -> 
07:41:50.396 -> === disablestandby()
07:41:51.505 -> 14 Dateien in Ordner 21
07:41:51.505 -> Hörspielmodus -> zufälligen Track wiedergeben
07:41:51.505 -> 8
07:41:54.134 -> Card UID: D6 BA FB 7C
07:41:54.134 -> PICC type: MIFARE 1KB
07:41:54.134 -> Authenticating using key A...
07:41:54.134 -> Current data in sector:
07:41:54.134 ->    1      7   00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF  [ 0 0 1 ] 
07:41:54.134 ->           6   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:54.176 ->           5   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:54.176 ->           4   13 37 B3 47  02 15 01 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
07:41:54.176 -> 
07:41:54.176 -> Reading data from block 4 ...
07:41:54.176 -> Data in block 4:
07:41:54.176 ->  13 37 B3 47 02 15 01 00 00 00 00 00 00 00 00 00
07:41:54.223 -> 
07:41:54.223 -> === disablestandby()
07:41:55.273 -> 14 Dateien in Ordner 21
07:41:55.273 -> Hörspielmodus -> zufälligen Track wiedergeben
07:41:55.320 -> 1

Bei anderen Ordnern habe ich das noch nicht festgestellt.

Gruß
Björnar

Hast Du die SD-Karte mal formatiert und neu befüllt?

nein, oassiert aber auch scheinbar nur in diesem Ordner…
Aber es ist auch bei beiden Tonuinos so

ich habe mal die beiden Zeilen rausgenommen:

randomSeed(millis + random(1000));
randomSeed(millis());

das führt zumindest dazu das er jetzt auch andere Tracks abspielt

Das ändert halt die Initialisierung des Zufallsgenerators. Wird aber das Problem nicht lösen. Wenn es wirklich nur in dem Ordner passiert würde ich die Ursache erstmal nicht primär im Code suchen…

sobald ich das rausnehme spielt er alle Tracks aus diesem Ordner ab.
Nehme ich das wieder rein spielt er nur die beiden Tracks ab.

randomSeed(millis + random(1000));

ich habe jetzt auch noch eine Überprüfung eingebaut damit nicht zufällig wieder der gleiche Track gespielt wird:

  // Hörspielmodus: eine zufällige Datei aus dem Ordner
  if (myFolder->mode == 1) {
    Serial.println(F("Hörspielmodus -> zufälligen Track wiedergeben"));
    lastTrack = currentTrack;
    currentTrack = random(1, numTracksInFolder + 1);
    if (numTracksInFolder > 1) {
      do {
        currentTrack = random(1, numTracksInFolder + 1);
      } while (lastTrack == currentTrack);
      } else {
      currentTrack = 1;
    }

Das müsste übrigens randomSeed(millis() + random(1000)); heißen, das ist zwar ein Fehler, aber sollte eigentlich nicht das Problem sein. Kannste ja mal testen. Hast du mal die DEV Version probiert?

ja bin auf der DEV Version.

doch das war es, jetzt nimmt er alle Tracks.

Trotzdem sollte noch eine Überprüfung stattfinden ob es nicht doch wieder der gleiche Track ist.

Aber nicht auf der aktuellen Version oder? Der von dir zitierte code mit dem millis ohne () ist dort nicht mehr drin.

von vor ca. 2 Wochen

Bitte bevor Fehler gemeldet werden immer die aktuelle DEV einspielen. Da ändert sich ggf. öfter was.

…hatte nur den Beitrag gelesen und hier wurde auch keine Lösung Präsentiert.
Sorry.
Übernimmst du die Abfrage ob der neue Track auch wirklich ein anderer ist?

Sonst muss ich immer wieder den Teil in das DEV einbauen…

habe jetzt die aktuelle DEV.
Hier werden jetzt zwar alle gespielt aber einige doch sehr viel häufiger als andere.

Kann hier nicht eine besser Durchmischung erfolgen?

Ich habe da ein Idee.
Beim erst mal starten des Ordners wird eine Liste der Titel (z.B. 1-14) durcheinander in ein Array gepackt.
Dann wird der erste Track gespielt array[1] lege ich die gleiche Karte noch einmal auf spielt der array[2] usw. bist zum ende.

Beim letzten angekommen oder wenn ich eine neue Karte auflege wird wieder eine neue Liste erstellt.

Von welchem Modus reden wir nochmal?