Do you want to know the work of RFID Reader/Writer RC522 SPI S50 CARD AND KEYCHAIN, then this Product is best for you . With this Product, you can detect radio waves produced by a reader to detect the presence of (then read the data stored on) an RFID tag
This is RFID Reader/Writer RC522 SPI S50 CARD AND KEYCHAIN which works on non-contact 13.56mhz communication , is designed by NXP as 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.
It uses an advanced modulation system, fully integrated at 13.56MHz with all kinds of positive non-contact communication protocols. Support 14443A compatible answer signal . DSP deals with ISO14443A frames and error correction.
This module can fit directly in handheld devices for mass production. The module uses the 3.3V power supply and can communicate directly with any CPU board by connecting through the SPI protocol, which ensures reliable work, good reading distance.
Features :
Highly integrated analog circuitry to demodulate and decode responses.
Supports ISO/IEC 14443 A/MIFARE.
Typical operating distance in reading/Write mode up to 50 mm.
Supports ISO/IEC 14443 A higher transfer speed communication up to 848 kBd.
SPI up to 10 Mbit/s.
FIFO buffer handles 64 bytes send and receive.
Flexible interrupt modes.
Power-down by software mode.
Programmable Timer.
2.5 V to 3.3 V power supply.
CRC coprocessor.
Internal self-test .
Package Includes
1 x RFID-RC522 Reader/Write Module 1 x Standard blank RFID card 2 x A Straight & right-angle header strip 1 x Special-shaped keychain RFID tag
Useful Links:
Arduino Playground for MFRC522
Arduino RC522 RFID Door Unlock
Access Control System based on Arduino
Github Source code for various targets like PIC, AVR, ARM, and such
Pin Connections Table 1
Board Sensor Pin Connection RC522 SDA/SCK/MOSI/MISO/RST board SS / hw SCK / hw MOSI / hw MISO / board RST
RFID Reader/Writer RC522 SPI S50 with RFID Card and Tag - Arduino Uno
RFID Reader/Writer RC522 SPI S50 with RFID Card and Tag - Arduino Nano
RFID Reader/Writer RC522 SPI S50 with RFID Card and Tag - Arduino Mega
RFID Reader/Writer RC522 SPI S50 with RFID Card and Tag - ESP32
RFID Reader/Writer RC522 SPI S50 with RFID Card and Tag - ESP8266
RFID Reader/Writer RC522 SPI S50 with RFID Card and Tag - STM32
RFID Reader/Writer RC522 SPI S50 with RFID Card and Tag - Raspberry Pi Pico
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // SDA(SS)=10 , RST=9 on Arduino Uno. SPI MOSI/MISO/SCK use the board's default hardware SPI pins.
6 #include <SPI.h>
7 #include <MFRC522.h>
8
9 #define SS_PIN 10
10 #define RST_PIN 9
11
12 MFRC522 mfrc522(SS_PIN, RST_PIN);
13
14 void setup () {
15 Serial.begin (115200 );
16 SPI.begin();
17 mfrc522.PCD_Init();
18 Serial.println ("Scan a card...");
19 }
20
21 void loop () {
22 if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return ;
23
24 Serial.print ("Card UID:");
25 for (byte i = 0 ; i < mfrc522.uid.size; i++) {
26 Serial.print (mfrc522.uid.uidByte[i] < 0x10 ? " 0 " : " ");
27 Serial.print (mfrc522.uid.uidByte[i], HEX);
28 }
29 Serial.println ();
30
31 mfrc522.PICC_HaltA();
32 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // SDA(SS)=10 , RST=9 on Arduino Nano. SPI MOSI/MISO/SCK use the board's default hardware SPI pins.
6 #include <SPI.h>
7 #include <MFRC522.h>
8
9 #define SS_PIN 10
10 #define RST_PIN 9
11
12 MFRC522 mfrc522(SS_PIN, RST_PIN);
13
14 void setup () {
15 Serial.begin (115200 );
16 SPI.begin();
17 mfrc522.PCD_Init();
18 Serial.println ("Scan a card...");
19 }
20
21 void loop () {
22 if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return ;
23
24 Serial.print ("Card UID:");
25 for (byte i = 0 ; i < mfrc522.uid.size; i++) {
26 Serial.print (mfrc522.uid.uidByte[i] < 0x10 ? " 0 " : " ");
27 Serial.print (mfrc522.uid.uidByte[i], HEX);
28 }
29 Serial.println ();
30
31 mfrc522.PICC_HaltA();
32 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // SDA(SS)=53 , RST=9 on Arduino Mega. SPI MOSI/MISO/SCK use the board's default hardware SPI pins.
6 #include <SPI.h>
7 #include <MFRC522.h>
8
9 #define SS_PIN 53
10 #define RST_PIN 9
11
12 MFRC522 mfrc522(SS_PIN, RST_PIN);
13
14 void setup () {
15 Serial.begin (115200 );
16 SPI.begin();
17 mfrc522.PCD_Init();
18 Serial.println ("Scan a card...");
19 }
20
21 void loop () {
22 if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return ;
23
24 Serial.print ("Card UID:");
25 for (byte i = 0 ; i < mfrc522.uid.size; i++) {
26 Serial.print (mfrc522.uid.uidByte[i] < 0x10 ? " 0 " : " ");
27 Serial.print (mfrc522.uid.uidByte[i], HEX);
28 }
29 Serial.println ();
30
31 mfrc522.PICC_HaltA();
32 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // SDA(SS)=5 , RST=22 on ESP32. SPI MOSI/MISO/SCK use the board's default hardware SPI pins.
6 #include <SPI.h>
7 #include <MFRC522.h>
8
9 #define SS_PIN 5
10 #define RST_PIN 22
11
12 MFRC522 mfrc522(SS_PIN, RST_PIN);
13
14 void setup () {
15 Serial.begin (115200 );
16 SPI.begin();
17 mfrc522.PCD_Init();
18 Serial.println ("Scan a card...");
19 }
20
21 void loop () {
22 if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return ;
23
24 Serial.print ("Card UID:");
25 for (byte i = 0 ; i < mfrc522.uid.size; i++) {
26 Serial.print (mfrc522.uid.uidByte[i] < 0x10 ? " 0 " : " ");
27 Serial.print (mfrc522.uid.uidByte[i], HEX);
28 }
29 Serial.println ();
30
31 mfrc522.PICC_HaltA();
32 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // SDA(SS)=D8, RST=D3 on ESP8266. SPI MOSI/MISO/SCK use the board's default hardware SPI pins.
6 #include <SPI.h>
7 #include <MFRC522.h>
8
9 #define SS_PIN D8
10 #define RST_PIN D3
11
12 MFRC522 mfrc522(SS_PIN, RST_PIN);
13
14 void setup () {
15 Serial.begin (115200 );
16 SPI.begin();
17 mfrc522.PCD_Init();
18 Serial.println ("Scan a card...");
19 }
20
21 void loop () {
22 if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return ;
23
24 Serial.print ("Card UID:");
25 for (byte i = 0 ; i < mfrc522.uid.size; i++) {
26 Serial.print (mfrc522.uid.uidByte[i] < 0x10 ? " 0 " : " ");
27 Serial.print (mfrc522.uid.uidByte[i], HEX);
28 }
29 Serial.println ();
30
31 mfrc522.PICC_HaltA();
32 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // SDA(SS)=PA4, RST=PB0 on STM32. SPI MOSI/MISO/SCK use the board's default hardware SPI pins.
6 #include <SPI.h>
7 #include <MFRC522.h>
8
9 #define SS_PIN PA4
10 #define RST_PIN PB0
11
12 MFRC522 mfrc522(SS_PIN, RST_PIN);
13
14 void setup () {
15 Serial.begin (115200 );
16 SPI.begin();
17 mfrc522.PCD_Init();
18 Serial.println ("Scan a card...");
19 }
20
21 void loop () {
22 if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return ;
23
24 Serial.print ("Card UID:");
25 for (byte i = 0 ; i < mfrc522.uid.size; i++) {
26 Serial.print (mfrc522.uid.uidByte[i] < 0x10 ? " 0 " : " ");
27 Serial.print (mfrc522.uid.uidByte[i], HEX);
28 }
29 Serial.println ();
30
31 mfrc522.PICC_HaltA();
32 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // SDA(SS)=17 , RST=20 on Raspberry Pi Pico. SPI MOSI/MISO/SCK use the board's default hardware SPI pins.
6 #include <SPI.h>
7 #include <MFRC522.h>
8
9 #define SS_PIN 17
10 #define RST_PIN 20
11
12 MFRC522 mfrc522(SS_PIN, RST_PIN);
13
14 void setup () {
15 Serial.begin (115200 );
16 SPI.begin();
17 mfrc522.PCD_Init();
18 Serial.println ("Scan a card...");
19 }
20
21 void loop () {
22 if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) return ;
23
24 Serial.print ("Card UID:");
25 for (byte i = 0 ; i < mfrc522.uid.size; i++) {
26 Serial.print (mfrc522.uid.uidByte[i] < 0x10 ? " 0 " : " ");
27 Serial.print (mfrc522.uid.uidByte[i], HEX);
28 }
29 Serial.println ();
30
31 mfrc522.PICC_HaltA();
32 }
Project Notes: SPI 13.56MHz RFID reader/writer (Mifare).