Categories

arduino rfid test

  • Author: Admin
  • Published On: 2/28/2026
  • Category: admin

Here’s a complete example of how to trigger a relay using RFID-RC522 and Arduino Nano when a specific RFID card is detected.

Hardware Needed

  • Arduino Nano
  • RFID-RC522 module (MFRC522)
  • Relay module (5V)
  • Jumper wires
  • RFID card/tag

Wiring Diagram

RFID-RC522 β†’ Arduino Nano (SPI)

| RC522 Pin | Arduino Nano Pin | | --------- | ------------------- | | SDA (SS) | D10 | | SCK | D13 | | MOSI | D11 | | MISO | D12 | | IRQ | Not connected | | GND | GND | | RST | D9 | | 3.3V | 3.3V ⚠️ (IMPORTANT) |

Important:

RC522 works on 3.3V, NOT 5V!

Relay β†’ Arduino Nano

| Relay Pin | Arduino Nano Pin | | --------- | ---------------- | | VCC | 5V | | GND | GND | | IN | D3 |

Install Library

In Arduino IDE:

  • Sketch β†’ Include Library β†’ Manage Libraries
  • Search: MFRC522
  • Install: MFRC522 by Miguel Balboa

Library: MFRC522


Arduino Code (Trigger Relay When Card Matches)

#include #include #define SS_PIN 10 #define RST_PIN 9 #define RELAY_PIN 3 MFRC522 mfrc522(SS_PIN, RST_PIN); // Replace with your card UID byte authorizedUID[4] = {0xDE, 0xAD, 0xBE, 0xEF}; void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); Serial.println("Scan your RFID card..."); } void loop() { // Look for new card if (!mfrc522.PICC_IsNewCardPresent()) { return; } // Select card if (!mfrc522.PICC_ReadCardSerial()) { return; } Serial.print("UID tag: "); bool authorized = true; for (byte i = 0; i < 4; i++) { Serial.print(mfrc522.uid.uidByte[i], HEX); Serial.print(" "); if (mfrc522.uid.uidByte[i] != authorizedUID[i]) { authorized = false; } } Serial.println(); if (authorized) { Serial.println("Access Granted!"); digitalWrite(RELAY_PIN, HIGH); // Relay ON delay(3000); // 3 seconds digitalWrite(RELAY_PIN, LOW); // Relay OFF } else { Serial.println("Access Denied!"); } mfrc522.PICC_HaltA(); }

How to Get Your Card UID

Upload this simple code first:

#include #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); Serial.println("Scan card..."); } void loop() { if (!mfrc522.PICC_IsNewCardPresent()) return; if (!mfrc522.PICC_ReadCardSerial()) return; Serial.print("UID: "); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i], HEX); Serial.print(" "); } Serial.println(); }

Open Serial Monitor, scan card, then replace:

byte authorizedUID[4] = {0xXX, 0xXX, 0xXX, 0xXX};

How It Works

  • RC522 reads RFID card UID
  • Arduino compares UID with authorized UID
  • If match β†’ relay turns ON
  • If not β†’ relay stays OFF
  • Share On: