CODE | Simple RFID Reader - Arduino Project 044

RonWang2 years ago (2024-10-07)电子编程 COD278

Arduino Programming Basic -- Making an RFID Reader

Advanced RFID with Arduino

RFID (Radio Frequency Identification) technology enables wireless communication between a reader and tags for identification and data exchange. Using Arduino with RFID modules like the RC522 allows for building advanced projects such as access control systems, attendance tracking, and inventory management.

Overview of RFID with Arduino

The RFID system consists of a reader (e.g., RC522 module) and tags (passive or active). The RC522 operates at 13.56 MHz and supports SPI, I2C, and UART communication protocols, though SPI is most commonly used with Arduino. Tags store data and transmit it back to the reader when energized by its electromagnetic field.

Key Features of RC522 Module

  • Communication Protocols: SPI (up to 10 Mbps), I2C, UART.

  • Voltage: Operates at 3.3V but has 5V-tolerant pins.

  • Range: Typically 2-5 cm for standard tags.

Applications

 Reading/writing data, UID detection, and authentication.

Project 44 Simple RFID Reader

Arduino RFID RC522

Wiring Diagram Between RC522 and Arduino without voltage regulator

Arduino RFID RC522 Resistor

Wiring Diagram Between RC522 and Arduino with voltage regulator

As Circuit in the wiring diagram above, 1kOhM and 2kOhm pair of resistors are used to regulate 5V to 3.3V. It does not need to adjust the voltage between the Arduino pin and the MISO pin of the RC522 module. However, it is necessary to regulate the voltage between the Arduino pins and the SS, SCK, MOSI, and RST pins of the RC522 module.

// Project 44  Simple RFID Reader   Arduino-RFID-NFC

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

#define SS_PIN 10
#define RST_PIN 5

MFRC522 rfid(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin(); // init SPI bus
  rfid.PCD_Init(); // init MFRC522

  Serial.println("Tap RFID/NFC Tag on reader");
}

void loop() {
  if (rfid.PICC_IsNewCardPresent()) { // new tag is available
    if (rfid.PICC_ReadCardSerial()) { // NUID has been readed
      MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
      //Serial.print("RFID/NFC Tag Type: ");
      //Serial.println(rfid.PICC_GetTypeName(piccType));

      // print NUID in Serial Monitor in the hex format
      Serial.print("UID:");
      for (int i = 0; i < rfid.uid.size; i++) {
        Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
        Serial.print(rfid.uid.uidByte[i], HEX);
      }
      Serial.println();

      rfid.PICC_HaltA(); // halt PICC
      rfid.PCD_StopCrypto1(); // stop encryption on PCD
    }
  }
}
Share with Friends:

Related Articles

Resitor Ohm's Law

Resitor Ohm's Law

Ohm's law states that the current through a conductor between two points is directly&n…

CODE | RFID Servo and LED Control System - Arduino Project 045

CODE | RFID Servo and LED Control System - Arduino Project 045

Arduino Programming Basic -- RFID Servo and LED Control System Integrating RFID technology…

C02 | The Concept of Algorithms

C02 | The Concept of Algorithms

C语言教程02:算法的概念算法(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。计算机算法 是用计算机求解一个具体问题或执行特定任务的一组有序的操作步骤(或指令),是构成计算…

CentOS Server PHP 7.4+ Installation

CentOS Server PHP 7.4+ Installation

Centos服务器PHP7.4+安装IntroductionA LEMP software stack is a group of open source software that is typic…

CODE | SD Card Temperature Datalogger - Arduino Project 043

CODE | SD Card Temperature Datalogger - Arduino Project 043

Todady I made a simple Arduino datalogger using SD card and DHT11  relative humidity and t…

CODE | BMP280 Pressure Sensor LCD Display - Arduino Project 032

CODE | BMP280 Pressure Sensor LCD Display - Arduino Project 032

For this project we will use Arduino Uno and BMP280 along with LCD 16x2 display module to display te…

Post a Comment

Anonymous

Feel free to share your thoughts and opinions here.