Codey OnlineArduino & ESP32 component library › RFID RC522 Module 13.56MHz
RFID RC522 Module 13.56MHz
Sensors

RFID RC522 Module 13.56MHz

The RFID RC522 module (MFRC522 chip) reads and writes RFID/NFC tags operating at 13.56 MHz. It communicates with microcontrollers over an SPI interface using lines for chip-select (SDA/NSS), clock (SCK), data (MOSI/MISO), plus reset (RST) and an optional interrupt (IRQ), powered from 3.3V.

Width: 63.5 mm

Pinout — RFID RC522 Module 13.56MHz

Pin Signal Description
SDA chip-select SPI slave-select/chip-select input for the RC522, often labeled SDA on this module.
SCK SCK SPI clock input from the microcontroller to the RC522.
MOSI MOSI SPI data input to the RC522 from the microcontroller.
MISO MISO SPI data output from the RC522 to the microcontroller.
IRQ interrupt Interrupt output from the RC522 for events such as card detection or FIFO status.
GND ground Ground reference for power and logic signals.
RST reset Reset/power-down control input for the RC522; drive low to reset.
3.3V power 3.3 V power supply input for the RC522 module; do not power from 5 V.

Example wiring diagram — RFID RC522 Module 13.56MHz

From To Wire
board:3.3V x1:3.3V darkorange
board:GND x1:GND black
board:D10 x1:SDA green
board:D13 x1:SCK blue
board:D11 x1:MOSI yellow
board:D12 x1:MISO purple
board:D9 x1:RST cyan

Example Arduino code — RFID RC522 Module 13.56MHz

This example was written and compile-checked for the arduino-uno. Codey Online adapts it to any other supported board for you.

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

#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ;
  }

  SPI.begin();
  mfrc522.PCD_Init();

  Serial.println(F("RC522 RFID reader ready."));
  Serial.println(F("Tap an NFC/RFID card or tag near the reader."));
}

void loop() {
  if (!mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  if (!mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  Serial.print(F("Card UID: "));
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    if (mfrc522.uid.uidByte[i] < 0x10) {
      Serial.print(F("0"));
    }
    Serial.print(mfrc522.uid.uidByte[i], HEX);
    if (i < mfrc522.uid.size - 1) {
      Serial.print(F(" "));
    }
  }
  Serial.println();

  mfrc522.PICC_HaltA();
  mfrc522.PCD_StopCrypto1();
}

Related components

18650 Battery Shield with USB-C Charger and 5V Boost Converter

18650 Battery Shield with USB-C Charger and 5V Boost Converter

2.4 inch OLED Display I2C 3.3V

2.4 inch OLED Display I2C 3.3V

3.5 inch TFT LCD Shield

3.5 inch TFT LCD Shield

50kg Load Cell Weight Sensor

50kg Load Cell Weight Sensor

Build your Arduino or ESP32 project with AI

Describe what you want to build. Codey Online writes the code, draws the wiring diagram, compiles it and flashes your board straight from the browser.

Start for free