Giới thiệu Module thẻ từ RFID RC522 SPI
Module thẻ từ RFID RC522 SPI sử dụng IC MFRC522 của Phillip dùng để đọc và ghi dữ liệu cho thẻ NFC tần số 13.56mhz, với mức giá rẻ thiết kế nhỏ gọn, module này là sự lựa chọn hàng đầu cho các ứng dụng về ghi đọc thẻ RFID.
RFID (Radio Frequency Identification) là công nghệ nhận dạng đối tượng bằng sóng vô tuyến. Công nghệ này cho phép nhận biết các đối tượng thông qua hệ thống thu phát sóng radio, từ đó có thể giám sát, quản lý hoặc lưu vết từng đối tượng.
Một hệ thống RFID thường bao gồm 2 thành phần chính là thẻ tag (chip RFID chứa thông tin) và đầu đọc (reader) đọc các thông tin trên chip.
Ngoài ra còn có : Lora – NRF24L01,…
Các truyền không dây: HC-12 / RF / RFID,…
Anten đi kèm: Anten 433MHz

Chức năng các chân
- 3.3V : Cấp nguồn 3.3V.
- RST : Reset chuẩn SPI.
- GND : Cấp nguồn 0V
- IRQ : Không kết nối.
- MISO : Truyền SPI
- MOSI : Truyền SPI
- SCK : Tạo xung SPI
- SS : Cho phép SPI

Thông số kỹ thuật MODULE RFID RC522
- Điện áp hoạt động : 3.3V
- Dòng điện hoạt động : 26mA
- Dòng điện chờ : 1A
- Dòng điện nghĩ : 80uA
- Công suất : 86mW
- Tần số sóng mang : 13.56MHz
- Chuẩn truyền : SPI
- Khoảng cách hoạt động : 0~60mm(mifare1 card)
- Giao tiếp : SPI
- Tốc độ truyền dữ liệu : tối đa 10Mbit/s
- Các loại card RFID hỗ trợ : mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire
- Nhiệt độ hoạt động : -10°C – 60°C
- Số chân : 8
- Loại : Module
- Kích thước : 40mm*60mm
Chương trình Test
Nguyên lý kết nối

Chương trình
Thư viện : Tải MFRC522.h Cài trực tiếp trên phần mềm Arduino IDE
#include <SPI.h> //include the SPI bus library
#include <MFRC522.h> //include the RFID reader library
#define SS_PIN 10 //slave select pin
#define RST_PIN 5 //reset pin
MFRC522 mfrc522(SS_PIN, RST_PIN); // instatiate a MFRC522 reader object.
MFRC522::MIFARE_Key key; //create a MIFARE_Key struct named 'key', which will hold the card information
//this is the block number we will write into and then read.
int block=2;
byte blockcontent[16] = {"Last-Minute-Engg"}; //an array with 16 bytes to be written into one of the 64 card blocks is defined
//byte blockcontent[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //all zeros. This can be used to delete a block.
//This array is used for reading out a block.
byte readbackblock[18];
void setup()
{
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card (in case you wonder what PCD means: proximity coupling device)
Serial.println("Scan a MIFARE Classic card");
// Prepare the security key for the read and write functions.
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF; //keyByte is defined in the "MIFARE_Key" 'struct' definition in the .h file of the library
}
}
void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
Serial.println("card selected");
//the blockcontent array is written into the card block
writeBlock(block, blockcontent);
//read the block back
readBlock(block, readbackblock);
//uncomment below line if you want to see the entire 1k memory with the block written into it.
//mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
//print the block contents
Serial.print("read block: ");
for (int j=0 ; j<16 ; j++)
{
Serial.write (readbackblock[j]);
}
Serial.println("");
}
//Write specific block
int writeBlock(int blockNumber, byte arrayAddress[])
{
//this makes sure that we only write into data blocks. Every 4th block is a trailer block for the access/security info.
int largestModulo4Number=blockNumber/4*4;
int trailerBlock=largestModulo4Number+3;//determine trailer block for the sector
if (blockNumber > 2 && (blockNumber+1)%4 == 0){Serial.print(blockNumber);Serial.println(" is a trailer block:");return 2;}
Serial.print(blockNumber);
Serial.println(" is a data block:");
//authentication of the desired block for access
byte status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid));
if (status != MFRC522::STATUS_OK) {
Serial.print("PCD_Authenticate() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return 3;//return "3" as error message
}
//writing the block
status = mfrc522.MIFARE_Write(blockNumber, arrayAddress, 16);
//status = mfrc522.MIFARE_Write(9, value1Block, 16);
if (status != MFRC522::STATUS_OK) {
Serial.print("MIFARE_Write() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return 4;//return "4" as error message
}
Serial.println("block was written");
}
//Read specific block
int readBlock(int blockNumber, byte arrayAddress[])
{
int largestModulo4Number=blockNumber/4*4;
int trailerBlock=largestModulo4Number+3;//determine trailer block for the sector
//authentication of the desired block for access
byte status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid));
if (status != MFRC522::STATUS_OK) {
Serial.print("PCD_Authenticate() failed (read): ");
Serial.println(mfrc522.GetStatusCodeName(status));
return 3;//return "3" as error message
}
//reading a block
byte buffersize = 18;//we need to define a variable with the read buffer size, since the MIFARE_Read method below needs a pointer to the variable that contains the size...
status = mfrc522.MIFARE_Read(blockNumber, arrayAddress, &buffersize);//&buffersize is a pointer to the buffersize variable; MIFARE_Read requires a pointer instead of just a number
if (status != MFRC522::STATUS_OK) {
Serial.print("MIFARE_read() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return 4;//return "4" as error message
}
Serial.println("block was read");
}
Tham khảo chương trình mẫu và thông tin linh kiện chi tiết tại:

CẦU DIODE KBPC3510 DIP, CHỈNH LƯU TOÀN KỲ 35A - 1000V
Công tắc hành trình V-156-1C25, Công tắc Micro Switch
Hàng rào Cái vuông đôi thẳng 2*40P 2.54mm, Jump header đôi 40 pin
RELAY OMRON G2R-2-12VDC 8 CHÂN 5A, RƠ LE TRUNG GIAN
Module thu phát NRF24L01 2.4Ghz anten liền, Truyền nhận không dây RF
TRANSISTOR NPN TIP142 DIP, DÃY HOẠT ĐỘNG 100V VÀ 10A
Cảm biến nhiệt độ NTC 10K 5*25mm 0.5m, Nhiệt độ điện trở
Pic16F716 DIP, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Điện trở 6M8 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Pic16F684 DÁN SMD, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Điện trở 1R2 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Điện trở 10R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Điện trở 27R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Dây bus 3pin 10cm 24AWG cùng hướng XH2.54mm, Kích thước chân 2.54mm
CẦU DIODE KBPC5010 DIP, CHỈNH LƯU TOÀN KỲ 50A - 1000V
Pic12F683 DÁN SMD, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
CẦU DIODE KBP410 DIP, CHỈNH LƯU TOÀN KỲ 4A - 1000V
CẢM BIẾN PIR HC-SR505, CHUYỂN ĐỘNG THÂN NHIỆT
Điện trở 1R5 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
CẢM BIẾN LM35, NHIỆT ĐỘ MÔI TRƯỜNG (LOẠI TỐT)
Điện trở 470R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
IC SỐ SN74HC138 3 SANG 8, IC CỔNG LOGIC MỞ RỘNG DIP
Điện trở 560R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Arduino Pro Mini 16Mhz, Vi điều khiển họ arduino
Điện trở 6R8 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Dây bus 9pin 20cm 24AWG cùng hướng XH2.54mm, Kích thước chân 2.54mm
ĐỘNG CƠ SERVO MG90 KIM LOẠI, ĐỘNG CƠ GÓC 0 - 180 ĐỘ
IC SN74HC374 FLIP-FLOP LOẠI D, DƯƠNG 8BIT 3 TRẠNG THÁI
Module thu phát NRF24L01 2.4Ghz anten rời, Truyền nhận không dây RF
Biến trở tinh chỉnh 3296W 10K 103, Biến trở vi chỉnh 10K
Bàn phím cứng keypad 4x4 , Ma trận phím matrix 4x4
Pic12F629 DÁN SMD, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Khớp nối cứng D14-L25 6x8mm, Khớp nối trục cứng 3D
Ốc đầu bằng bake M3-45mm, Đai ốc M3 cao 45mm - 5pcs
CẢM BIẾN MQ2, CẢM BIẾN NỒNG ĐỘ KHÍ GA
MÁY BƠM CHÌM 5V TRẮNG ĐỨNG, CÔNG SUẤT BƠM LƯU LƯỢNG 1.6L/P
Module giảm áp XL4016 8A, Mạch ổn áp DC-DC giảm áp 8A
PIC18F4520 DIP, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Pic16F15323 SMD, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Khớp nối cứng D14-L25 8x8mm, Khớp nối trục cứng
Kìm cắt linh kiện 90mm có khóa, Kìm cắt dây điện
Điện trở 2R7 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Dây bus 6pin 10cm 24AWG cùng hướng XH2.54mm, Kích thước chân 2.54mm
Trụ đồng lục giác M3*50mm Cái cái, Trụ đồng lục giác cao 50mm
Dây bus 5pin 40cm 24AWG cùng hướng XH2.54mm, Kích thước chân 2.54mm
PIC18F2550 DÁN SMD, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Điện trở 330R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
IC SN74HC595 THANH GHI DỊCH, MỞ RỘNG CHÂN 8BIT DIP
Điện trở 4R7 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
IC SỐ SN74HC11 CỔNG AND, IC CỔNG LOGIC 14 CHÂN DIP
PIC18F4550 DIP, VI ĐIỀU KHIỂN HỌ PIC CỦA MICROCHIP
Màn hình LCD1602 Xanh lá, Màn hình hiển thị Text
Module giảm áp LM2596 ADJ 3A, Module ổn áp DC-DC giảm áp 3A
Bộ khung xe robot 4 bánh 2 tầng, Khung xe mô hình 4 bánh
Dây bus 2pin 10cm 24AWG cùng hướng XH2.54mm, Kích thước chân 2.54mm
Anten 2.4G/5.8GHz 9DBI 17.5CM Jack N Kim trong, Anten Wifi, Zigbee..
Điện trở 15R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
Điện trở 20R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
CẢM BIẾN PIR HC-SR501, CHUYỂN ĐỘNG THÂN NHIỆT
IC SỐ SN4HC245 IC ĐỆM, IC 3 TRẠNG THÁI 8BIT DIP
Điện trở 16R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
TRANSISTOR PNP 2N3906 DIP, HOẠT ĐỘNG 40V VÀ 200mA
Dây bus 5pin 20cm 24AWG cùng hướng XH2.54mm, Kích thước chân 2.54mm
Hàng rào đực đơn thẳng 1*40P 17mm 2.54mm, Jump header đơn 40 pin
LED 5MM PHỦ XANH LÁ CHÂN NGẮN, LED SIÊU SÁNG - 40 CON
Bộ chuyển đổi Pt100 4-20mA 0º-400ºC, Nhiệt độ 0-400 độ C - Loại thường
Màn hình LCD1602 Xanh dương, Màn hình hiển thị Text
ANTEN 2.4G/5.8GHz 8DBI 16CM LỖ TRONG, ANTEN WIFI, ZIGBEE
Điện trở 30R 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
KHUNG CÁNH TAY ROBOT 6 BẬC, CHƯA BAO GỒM ĐỘNG CƠ
Điện trở 6R2 1/4W 5 vòng màu, Điện trở 1/4W - 100 con
ANTEN 433Mhz 8dBi KIM TRONG 16.5CM, ANTEN LORA 433MHz
DOMINO KHỐI 4P TB-1504 600V 15A, CẦU ĐẤU ĐIỆN 4P
Hàng rào cái lỗ tròn đơn thẳng 1*40P 2.54mm, Jump header đơn 40 pin
CẦU DIODE KBP310 DIP, CHỈNH LƯU TOÀN KỲ 3A - 1000V
Hồng Ngoại E18-D80NK, CẢM BIẾN VẬT CẢN 5V
ĐIỆN TRỞ 12R 100W, ĐIỆN TRỞ CÔNG SUẤT NHÔM RX24
Màn hình LCD2004 I2C Xanh lá, Màn hình hiển thị Text 















Đánh giá
Chưa có đánh giá nào.