Home Code Arduino Uno RFID-RC522 example

Arduino Uno RFID-RC522 example

by shedboy71

This example shows how Arduino Uno + RFID-RC522 (RFID reader) to dump info of RFID key and RFID card, here is a picture of the module.

The microcontroller and card reader uses SPI for communication . The card reader and the tags communicate using a 13.56MHz electromagnetic field. (ISO 14443A standart tags)

Datasheet for the chip that used in modules can be found at:

http://www.nxp.com/documents/data_sheet/MFRC522.pdf

Schematic

Here is a schematic showing how to connect the RFID-RC522 module to your Arduino Uno

Arduino-Uno-r3-with-RFID-RC522_bb

Code

I installed the library from https://github.com/miguelbalboa/rfid

[codesyntax lang=”cpp”]

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN     9       // 
#define SS_PIN      10      //

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance

void setup() {
    Serial.begin(9600);     // Initialize serial communications with the PC
    while (!Serial);        // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
    SPI.begin();            // Init SPI bus
    mfrc522.PCD_Init();     // Init MFRC522
    ShowReaderDetails();    // Show details of PCD - MFRC522 Card Reader details
    Serial.println(F("Scan PICC to see UID, type, and data blocks..."));
}

void loop() {
    // Look for new cards
    if ( ! mfrc522.PICC_IsNewCardPresent()) {
        return;
    }

    // Select one of the cards
    if ( ! mfrc522.PICC_ReadCardSerial()) {
        return;
    }

    // Dump debug info about the card; PICC_HaltA() is automatically called
    mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

void ShowReaderDetails() {
    // Get the MFRC522 software version
    byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
    Serial.print(F("MFRC522 Software Version: 0x"));
    Serial.print(v, HEX);
    if (v == 0x91)
        Serial.print(F(" = v1.0"));
    else if (v == 0x92)
        Serial.print(F(" = v2.0"));
    else
        Serial.print(F(" (unknown)"));
    Serial.println("");
    // When 0x00 or 0xFF is returned, communication probably failed
    if ((v == 0x00) || (v == 0xFF)) {
        Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
    }
}

[/codesyntax]

 

Results

Run the code above and start the serial monitor, now tap and hold the card to the module. You will see something like this

RFID-RC522 output

RFID-RC522 output

 

Link
RFID module RC522 Kits S50 13.56 Mhz 6cm With Tags SPI Write & Read for arduino uno

Share

You may also like