You are on page 1of 6

Mifare RFID Reader/Writer

RFID means radio-frequency identification. RFID uses electromagnetic fields to transfer data
over short distances. RFID is useful to identify people, to make transactions, etc…
An RFID system uses:
tags attached to the object to be identified, in this example we have a keychain and an
electromagnetic card. Each tag has his own identification (UID).

two-way radio transmitter-receiver, the reader, that send a signal to the tag and read its
response.

Mifare RC522 is the high integrated RFID card reader which works on non-contact 13.56mhz
communication, is designed by NXP as a low power consumption, low cost and compact size
read and write chip, is the best choice in the development of smart meters and portable hand-
held devices.
MF RC522 use the advanced modulation system, fully integrated at 13.56MHz with all kinds of
postive non-contact communication protocols. Support 14443A compatible answer signal. DSP
deal with ISO14443A frames and error correction. Futhermore, it also supports
rapid CRYPTO1 encryption to validate Mifare series products. MFRC522 support Mifare series
higher speed non-contact communication, duplex communication speed up to 424 kb/s. As a
new family member in 13.56MHz RFID family, MF RC522 has many similarities to MF RC5200
and MF RC530, and also has more new features.
This module can fit directly in hand held devices for mass production. Module use 3.3V power
supply, and can communicate directly with any CPU board by connecting through SPI protocol,
which ensure reliable work, good reading distance.
Specifications
Voltage: DC 3.3V (Do not use 5V supply)
Operating Current :13-26mA
Idle Current :10-13mA
Sleep current: <80uA
Peak current: <30mA
Operating Frequency: 13.56MHz
Supported card types: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire
Dimensions: 40mm × 60mm
Module Interface SPI Data Transfer Rate: Max. 10Mbit/s
Card reading distance :0~30mm (Mifare1 card)

Arduino Step-by-Step Projects »

Description
RFID means radio-frequency identification. RFID uses electromagnetic fields to transfer data
over short distances. RFID is useful to identify people, to make transactions, etc…
You can use an RFID system to open a door. For example, only the person with the right
information on his card is allowed to enter. An RFID system uses:
tags attached to the object to be identified, in this example we have a keychain and an
electromagnetic card. Each tag has his own identification (UID).
two-way radio transmitter-receiver, the reader, that send a signal to the tag and read its
response.

Pin wiring

Pin Wiring to Arduino Uno

SDA Digital 10

SCK Digital 13

MOSI Digital 11

MISO Digital 12

IRQ unconnected

GND GND

RST Digital 9

3.3V 3.3V
Reading Data from a RFID tag

/*
* MFRC522 - Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS SPI W AND
R BY COOQROBOT.
* The library file MFRC522.h has a wealth of useful info. Please read it.
* The functions are documented in MFRC522.cpp.
*
* Based on code Dr.Leong ( WWW.B2CQSHOP.COM )
* Created by Miguel Balboa (circuitito.com), Jan, 2012.
* Rewritten by Søren Thing Andersen (access.thing.dk), fall of 2013 (Translation to English,
refactored, comments, anti collision, cascade levels.)
* Released into the public domain.
*
* Sample program showing how to read data from a PICC using a MFRC522 reader on the
Arduino SPI interface.
*----------------------------------------------------------------------------- empty_skull
* Aggiunti pin per arduino Mega
* add pin configuration for arduino mega
* http://mac86project.altervista.org/
----------------------------------------------------------------------------- Nicola Coppola
* Pin layout should be as follows:
* Signal Pin Pin Pin
* Arduino Uno Arduino Mega MFRC522 board
* ------------------------------------------------------------
* Reset 9 5 RST
* SPI SS 10 53 SDA
* SPI MOSI 11 51 MOSI
* SPI MISO 12 50 MISO
* SPI SCK 13 52 SCK
*
* The reader can be found on eBay for around 5 dollars. Search for "mf-rc522" on ebay.com.
*/

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

#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.

void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
Serial.println("Scan PICC to see UID and type...");
}

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));
}

You might also like