Inhaltsverzeichnis
Für dieses Projekt benötigst du
Mifare RC522 mit einem Arduino Mikrocontroller ansteuern
Der RFID („radio-frequency identification“) Empfänger wird verwendet, um von RFID Sendern (auch „RFID Tags“ genannt) per Funk einen bestimmten Code auszulesen. Jeder Sender hat dabei nur einen einmaligen, ganz individuellen Code. Damit lassen sich mit dem Arduino Schließanlagen oder ähnliche Projekte verwirklichen, bei denen sich eine Person mit einem Sender identifizieren soll.
RFID-TAGs können verschiedene Formen haben, wie z.B. Schlüsselanhänger oder Karten im Kreditkartenformat.
Auf dem folgenden Bild sieht man links zwei RFID-TAGs und rechts den RFID-Empfänger.
https://www.high-endrolex.com/40
Der RFID-Empfänger RFID-RC522 hat eine bereits angelötete 90° Stiftleiste. Es gibt auch Versionen, bei denen die Stiftleiste selbst an den RFID-Empfänger gelötet werden muss.
Wie funktioniert ein RFID Empfänger am Arduino?
Ein RFID-Empfänger enthält eine kleine Kupferspule, die ein magnetisches Feld erzeugt. Ein RFID-Sender enthält ebenfalls eine Kupferspule, die das magnetische Feld aufgreift und in dem Sender eine elektrische Spannung erzeugt. Diese Spannung wird dann verwendet, um einen kleinen elektronischen Chip dazu zu bringen, per Funk einen elektrischen Code auszusenden. Dieser empfangene Code kann dann vom Mikrocontroller weiter verarbeitet werden.
Hinweise zur Verkabelung am Arduino
Aufgabe: Mithilfe eines Arduino-Mikrocontrollers soll ein RFID-TAG ausgelesen werden. Im nächsten Schritt sollen zwei LEDs mit zwei verschiedenen Karten ein- und ausgeschaltet werden.
Verkabelung des Arduino-Boards mit dem RFD-Empfänger:
Board: | Arduino Uno | Arduino Mega | MFRC522-Empfänger |
Pin: | 10 | 53 | SDA |
Pin: | 13 | 52 | SCK |
Pin: | 11 | 51 | MOSI |
Pin: | 12 | 50 | MISO |
Pin: | unbelegt | unbelegt | IRQ |
Pin: | GND | GND | GND |
Pin: | 9 | 5 | RST |
Pin: | 3,3V | 3,3V | 3,3V |
Ein RFID-TAG mit Arduino auslesen
Der Schaltplan


Anschlüsse RFID-Empfönger am Arduino UNO
Beim Auslesen und Verarbeiten der Daten eines RFID-Empfängers wären wie auch bei anderen komplexen Aufgaben sehr viele Zeilen Quellcode erforderlich. Daher bedienen wir uns einer vorgefertigten Library. Die „MFRC522“ Library von GithubCommunity kann über den Bibliotheksverwalter mit dem Suchbegriff „MFRC522“ gefunden und installiert werden. Eine Anleitung zur Installation einer Bibliothek über den Bibliotheksverwalter findet sich unter Bibliotheken zur Arduino Software hinzufügen.
Benötigte Bibliothek

Zunächst werden wir die UID („Unique Identification Number“), also die individuelle Bezeichnung eines RFID-TAGs auslesen. Dazu verwenden wir das folgende Programm (Achtung: Das Programm funktioniert nur, wenn die Library wie oben beschrieben zur Arduino-Software hinzugefügt wurde). Das Programm ist für den UNO R3 Mikrocontroller vorgesehen. Bei MEGA2560 und anderen Controllern müssen die Pins entsprechend angepasst werden.
Der Programmcode
Wenn alles funktioniert hat, sieht das Ergebnis im Serieller Monitor so aus:

Erweiterungen des Programmbeispiels
Das Programm soll nun erweitert werden:
Wird eine bestimmte Karte vorgehalten, soll entweder eine grüne oder eine gelbe LED leuchten.
Wir die jeweilige Karte erneut vor den RFID-Empfänger gehalten, wird die entsprechende LED ausgeschaltet.
Das Programm im Film
Der Programmcode
Erklärungen zur Erweiterung des Programmcodes
Die LEDs werden mit define an den Pins 6 und 7 (Zeilen 9 und 10) definiert. Der Zustand der LEDs (StatusgelbeLED und StatusgrueneLED, Zeilen 13 und 14) wird auf false gesetzt. Die LEDs sind beim Start ausgeschaltet.
Die Variable WertDez enthält die individuelle UID der Karte.
Wird die korrekte UID erkannt wird ab Zeile 63 die gelbe LED ein- oder ausgeschaltet. Die Variable StatusgelbeLED wird „umgedreht“, aus false wird true, die LED leuchtet. Beim erneuten Vorhalten der Karte wird aus true false, die gelbe LED wird ausgeschaltet.
Ab Zeile 71 passiert das gleiche mit der grünen LED.
Natürlich musst du die hier im Beispiel genannte UIDs durch die individuell ermittelten UIDs austauschen.
Der Programmcode
Funduino - Dein Onlineshop für Mikroelektronik
-
Dauerhaft bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
-
Mehr als 3.500 Artikel sofort verfügbar!
-
Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.