2.35 RFID-RC522-Modul

Überblick

In dieser Lektion lernen Sie, wie Sie das RFID-Modul verwenden. RFID ist die Abkürzung für Radio Frequency Identification. Sein Arbeitsprinzip besteht darin, die kontaktlose Datenkommunikation zwischen dem Lesegerät und dem Etikett fortzusetzen, um das Ziel der Identifizierung des Ziels zu erreichen. Die Anwendung von RFID ist sehr umfangreich, derzeit sind die typischen Anwendungen Tierchips, Wegfahrsperre, Zugangskontrolle, Parkkontrolle, Produktionskettenautomatisierung, Materialverwaltung und so weiter.

Erforderliche Komponenten

../_images/Part_two_35.png

Fritzing-Schaltung

In diesem Beispiel fügen wir den RFID in das Steckbrett ein. Verbinden Sie die 3,3 V von RFID mit 3,3 V, GND mit GND, RST mit Pin 2, SDA mit Pin 6, SCK mit Pin 5, MOSI mit Pin 4, MISO mit Pin 3 und IRQ mit Pin 7.

../_images/image259.png

Schematische Darstellung

../_images/image260.png

Code

Bemerkung

  • Sie können die Datei 2.35_RFID.ino unter dem Pfad sunfounder_vincent_kit_for_arduino\code\2.35_RFID direkt öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE.

  • Hier wird die RFID1-Bibliothek verwendet. Eine Anleitung zur Installation finden Sie unter Manuelle Installation.

Wenn Sie die Codes auf das Mega2560-Board hochgeladen haben, können Sie Ihre RFID-Karte (geheimer Schlüssel) in der Nähe des RFID-Lesegeräts erhalten. Das Modul liest die Karteninformationen und druckt sie dann auf dem seriellen Monitor aus.

Code-Analyse

Die Funktionen des Moduls sind in der Bibliothek rfid1.h enthalten.

#include <rfid1.h>

Bibliotheks-Funktionen:

RFID1

Erstellen Sie eine neue Instanz der Klasse rfid1, die ein bestimmtes RFID-Modul darstellt, das an Ihr Arduino angeschlossen ist.

void begin(IRQ_PIN,SCK_PIN,MOSI_PIN,MISO_PIN,SDA_PIN,RST_PIN)

Pin-Konfiguration.

  • IRQ_PIN,SCK_PIN,MOSI_PIN,MISO_PIN: die für die SPI-Kommunikation verwendeten Pins.

  • SDA_PIN: Synchroner Datenadapter.

  • RST_PIN: Die zum Zurücksetzen verwendeten Pins.

void init()

Initialisieren Sie den RFID.

uchar request(uchar reqMode, uchar *TagType);

Suchen Sie nach Karte und lesen Sie den Kartentyp, und die Funktion gibt den aktuellen Lesestatus von RFID zurück und gibt bei Erfolg MI_OK zurück.

reqMode: Suchmethoden. PICC_REQIDL ist definiert, dass 0x26 Befehlsbits (Suchen Sie die Karten, die sich nicht im Antennenbereich im Schlafmodus befinden).

  • *TagType: Wird verwendet, um den Kartentyp zu speichern, und sein Wert kann 4 Byte betragen (z. B. 0x0400).

char * readCardType(uchar *TagType)

Diese Funktion decodiert die vierstellige Hexadezimalzahl von *tagType in den spezifischen Kartentyp und gibt einen String zurück. Wenn 0x0400 übergeben wird, wird „MFOne-S50“ zurückgegeben.

uchar anticoll(uchar *serNum);

Vermeiden Sie Konflikte und lesen Sie die Seriennummer der Karte. Die Funktion gibt den aktuellen Lesestatus von RFID zurück. Bei Erfolg gibt es MI_OK zurück.

  • *serNum: Wird verwendet, um die Kartenseriennummer zu speichern und die 4-Byte-Kartenseriennummer zurückzugeben. Das 5. Byte ist ein Recheck-Byte (z. B. meine Magnetkarten-ID ist 5AE4C955).

Phänomen Bild

../_images/Part_two_35_Code_Analysis.png