Arduino - RFID/NFC
In diesem Tutorial lernen wir, wie man RFID/NFC mit Arduino verwendet. Das RFID/NFC-System besteht aus zwei Komponenten: dem Leser und dem Tag. Es gibt zwei beliebte RFID/NFC-Leser: RC522 und PN532 RFID/NFC-Leser. Dieses Tutorial konzentriert sich auf den RC522 RFID/NFC-Leser. Der PN532 RFID/NFC-Leser wird in einem kommenden Tutorial vorgestellt.
RC522 RFID/NFC-Lesegerät (auch als RFID-RC522-Modul bezeichnet) kann:
- Lese die UID des RFID/NFC-Tags
- Ändere die UID des RFID/NFC-Tags (nur wenn der Tag UID-schreibbar ist)
- Schreibe Daten auf den RFID/NFC-Tag
- Lese Daten vom RFID/NFC-Tag
Unter den oben genannten Fähigkeiten ist das Auslesen der UID für Arduino am weitesten verbreitet. Dieses Tutorial konzentriert sich auf das Auslesen der UID eines RFID-/NFC-Tags. Das andere wird in den nächsten Tutorials behandelt.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das RFID-RC522-Modul
Pinbelegung des RFID-RC522-Moduls
RFID-RC522 hat 8 Pins, einige davon sind gemeinsame Pins, die übrigen werden auf drei Kommunikationsmodi aufgeteilt: SPI, I2C, UART. Zu einem Zeitpunkt kann nur ein Kommunikationsmodus verwendet werden. Die Pins sind:
- GND-Pin: muss mit GND (0 V) verbunden werden.
- VCC-Pin: muss mit VCC (3,3 V) verbunden werden.
- RST-Pin: ist ein Pin zum Zurücksetzen und Herunterfahren. Wenn dieser Pin auf LOW geht, wird eine vollständige Abschaltung aktiviert. Bei der steigenden Flanke wird das Modul zurückgesetzt.
- IRQ-Pin: ist ein Interrupt-Pin, der den Mikrocontroller benachrichtigen kann, wenn sich ein RFID-Tag in seine Nähe kommt.
- MISO/SCL/TX-Pin: fungiert als MISO, wenn die SPI-Schnittstelle aktiviert ist; fungiert als SCL, wenn die I2C-Schnittstelle aktiviert ist; und fungiert als TX, wenn die UART-Schnittstelle aktiviert ist.
- MOSI-Pin: fungiert als MOSI, wenn die SPI-Schnittstelle aktiviert ist.
- SCK-Pin: fungiert als SCK, wenn die SPI-Schnittstelle aktiviert ist.
- SS/SDA/RX-Pin: fungiert als SS, wenn die SPI-Schnittstelle aktiviert ist; fungiert als SDA, wenn die I2C-Schnittstelle aktiviert ist; und fungiert als RX, wenn die UART-Schnittstelle aktiviert ist.

※ Notiz:
- Die Anordnung der Pins kann je nach Hersteller variieren. Verwenden Sie immer die auf dem Modul aufgedruckten Beschriftungen. Das obige Bild zeigt den Pinout des Moduls vom Hersteller DIYables.
- Verbinden Sie den VCC-Pin nicht mit dem 5-V-Pin. Dadurch wird Ihr Modul wahrscheinlich zerstört.
- Die MFRC522-Bibliothek unterstützt nur den SPI-Modus. Daher verwendet dieses Tutorial nur die SPI-Kommunikation.
Wie RFID/NFC funktioniert
RFID/NFC umfasst zwei Komponenten: Lesegerät und Tag.
- Das Lesegerät besteht aus einem Hochfrequenzmodul und einer Antenne, die ein hochfrequentes elektromagnetisches Feld erzeugt.
- Der Tag ist in der Regel ein passives Gerät, das keine eigene Stromquelle benötigt. Der Tag enthält einen Mikrochip, der Informationen speichert und verarbeitet, und eine Antenne zum Empfangen und Senden eines Signals. Der Tag wird verwendet, um die Informationen zu speichern: UID (eindeutige Kennung) und Daten.

Um die Informationen auf einem Tag auszulesen, muss sich der Tag in unmittelbarer Nähe zum Lesegerät befinden (es ist kein direkter Sichtkontakt erforderlich). Die Lesevorgänge:
- Das Lesegerät erzeugt ein elektromagnetisches Feld, das dazu führt, dass sich Elektronen durch die Antenne des Tags bewegen und daraufhin den Chip mit Energie versorgen.
- Der Chip im Tag antwortet dann, indem er die angeforderten Informationen dem Lesegerät in Form eines weiteren Funksignals zurücksendet.
- Das Lesegerät erfasst das Signal und wandelt es in Daten um.
- Arduino liest die Daten vom Lesegerät.
Verdrahtungsdiagramm zwischen dem RFID-RC522-Modul und dem Arduino
Das RFID-RC522-Modul ist dafür ausgelegt, mit einer 3,3-V-Spannung betrieben zu werden, während die Ausgangspins eines Arduino ein 5-V-Niveau liefern. Also:
- Um auf Nummer sicher zu gehen, muss die 5-V-Spannung von den Arduino-Pins auf 3,3 V reguliert werden, bevor sie mit dem RC522-Modul verbunden wird.
- Um es einfach zu halten und zu Testzwecken, kann man die Arduino-Pins direkt mit dem RC522-Modul verbinden, aber dadurch könnte der Arduino in einigen Fällen nicht mehr ordnungsgemäß funktionieren.
Dieses Tutorial bietet zwei verschiedene Schaltpläne für beide Fälle:
- Schaltplan zwischen RC522 und Arduino ohne Spannungsregler

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
- Schaltplan zwischen RC522 und Arduino mit Spannungsregler

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wie im obigen Schaltplan gezeigt, werden ein Paar Widerstände von 1 kΩ und 2 kΩ verwendet, um 5 V auf 3,3 V zu regulieren. Es ist nicht erforderlich, die Spannung zwischen dem Arduino-Pin und dem MISO-Pin des RC522-Moduls anzupassen. Es ist jedoch erforderlich, die Spannung zwischen den Arduino-Pins und den SS-, SCK-, MOSI- und RST-Pins des RC522-Moduls zu regeln.
Verdrahtungstabelle für das RFID/NFC RC522-Modul und Arduino
RFID/NFC RC522 | Arduino |
---|---|
SS | → 10 |
SCK | → 13 |
MOSI | → 11 |
MISO | → 12 |
IRQ(not connected) | |
GND | → GND |
RST | → 5 |
VCC | → 3.3V |
Arduino RFID/NFC-Code
Schnelle Schritte
- Gehen Sie zum Symbol Bibliotheken-Icon in der linken Seitenleiste der Arduino IDE.
- Suchen Sie “MFRC522”, und finden Sie anschließend die Bibliothek von GithubCommunity.
- Klicken Sie auf die Schaltfläche Installieren, um die MFRC522-Bibliothek zu installieren.

- Kopiere den obigen Code und öffne ihn in der Arduino IDE
- Klicke auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino hochzuladen
- Öffne den Serial Monitor
- Tippe mehrere RFID/NFC-Tags auf das RFID-RC522-Modul
- Zeige die UID im Serial Monitor an
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.