Arduino mit MFRC522-Reader

Arduino mit MFRC522-Reader

Mehrere Tags am Reader

Wir haben bislang immer nur mit einem Tag im Aktivierungsbereich des Readers gearbeitet. Für die meisten oder zumindest für sehr viele Anwendungen ist das auch ausreichend. Unabhänging von der Anforderung stellt sich aber die Frage: "Was passiert, wenn sich mehrere Tags im Empfangsbereich des Readers befinden?"

Probieren wir das doch einfach einmal aus. Legen Sie zwei Tags vom Typ "Mifare Classic" auf den Antennenbereich des RFID-RC522:



Starten Sie jetzt das Programm zum Auslesen der UID und Sie erhalten die folgende Ausgabe:



Führen Sie das Experiment mit drei Tags durch und auch das klappt.

Für den Test ist es wichtig, dass Sie zunächst die Tags auf den Reader legen und dann das Programm durch Aufruf des "Serial Monitors" starten. Würden Sie die Tags nacheinander zum Reader führen, wäre ohnehin keine Kollision gegeben.

Führen Sie den gleichen Versuch nun mit zwei Tags von Typ Mifare Ultralight Classic durch.

In diesem Fall erhalten wir überhaupt kein Ergebnis, noch nicht mal ein Karte wird angezeigt. Und zwar liegt das an dem speziellen Antikollisionsverfahren, das ich hier nur vereinfacht darstellen möchte, denn dazu gibt es ja ein eigenes Tutorial: Antikollision

Das Prinzip funktioniert folgendermaßen:

Der Antikollisionsmechanismus ist dabei nicht der genannte Ablauf, der an das Spiel "Reise-nach-Jerusalem" erinnert, sondern die Art und Weise, wie sich die UID durchsetzt. Diese Abläufe werden unterschiedlich gehandhabt und der Hersteller hält sie in der Regel geheim.

Probieren Sie den gleichen Test mit 2 Ultralight-Karten durch, wird es so nicht funktionieren. Bei der Ultralight-Karte ist die UID 7 Byte lang und das Antikollisionsverfahren wird in zwei Stufen ausgeführt, was wir in unserem Programm nicht berücksichtigen. Hier ist ein Blick in den Source-Code der MFRC522-Bibliothek sehr lehrreich. Aber uns geht in diesem Kapitel ja um die Arduino mit MFRC522-Reader.