Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO RFID Reader with MFRC522 Module

View and Edit Project In Cirkit DesignerImage of Arduino UNO RFID Reader with MFRC522 Module

Circuit Documentation

Summary

This document provides a detailed overview of a circuit that integrates an RFID-RC522 module with an Arduino UNO microcontroller. The purpose of the circuit is to read data from RFID tags or cards using the RFID-RC522 module and communicate the information to a connected computer via the Arduino UNO. The Arduino UNO is programmed to initialize the RFID reader, handle the detection of new RFID cards, and output the card information to the serial monitor.

Component List

RFID-RC522

Arduino UNO

Wiring Details

RFID-RC522

Arduino UNO

Documented Code

The following code is written for the Arduino UNO to interface with the RFID-RC522 module. It initializes the RFID reader and continuously checks for new RFID cards to read their UID and other data.

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

#define RST_PIN         9          // Configurable, see typical pin layout above
#define SS_PIN          10         // Configurable, see typical pin layout above

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
    delay(4);                  // Optional delay. Some board do need more time after init to be ready, see Readme
    mfrc522.PCD_DumpVersionToSerial();    // Show details of PCD - MFRC522 Card Reader details
    Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {
    // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
    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));
}

This code is designed to be uploaded to the Arduino UNO using the Arduino IDE. Once uploaded, the Arduino will communicate with the RFID-RC522 module to read RFID cards and output the information to the serial monitor.