RFID – технология бесконтактного чтения и записи меток. Комплектуется ключ-картой, меткой-брелоком, а также RFID считывателем RC522: новая чёрная модель платы для работы с RFID метками на частоте 13.56 MHz.
Модуль подключается по шине SPI, а также требует два дополнительных цифровых пина на управление SDA (выполняет роль CS) и RST:
- SDA — Slave Select — выбор ведомого, SPI;
- SCK — Serial Clock — тактовый сигнал, SPI;
- MOSI — Master Output Slave Input — данные от ведущего к ведомому, SPI;
- MISO — Master Input Slave Output — данные от ведомого к ведущему, SPI;
- IRQ — линия прерываний;
- GND — земля
- RST — линия сброса. Данный пин подлючается к цифровму порту с ШИМ (PWM);
- VCC — питание 3.3 В.
Пример
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance void setup() { Serial.begin(9600); // Initialize serial communications with the PC while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin(); // Init SPI bus mfrc522.PCD_Init(); // Init MFRC522 ShowReaderDetails(); // Show details of PCD - MFRC522 Card Reader details Serial.println(F("Scan PICC to see UID, type, and data blocks...")); } 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)); } void ShowReaderDetails() { // Get the MFRC522 software version byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg); Serial.print(F("MFRC522 Software Version: 0x")); Serial.print(v, HEX); if (v == 0x91) Serial.print(F(" = v1.0")); else if (v == 0x92) Serial.print(F(" = v2.0")); else Serial.print(F(" (unknown)")); Serial.println(""); // When 0x00 or 0xFF is returned, communication probably failed if ((v == 0x00) || (v == 0xFF)) { Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?")); } } |
Схема







