#include <MFRC522.h>
#include <SPI.h>
// В настройках можно указать пины, на которых находятся RC522
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Создаем экземпляр объекта RC522
void setup()
{
Serial.begin(9600);
SPI.begin(); // Инициализируем SPI
mfrc522.PCD_Init(); // Инициализируем RC522
Serial.println("RFID ready!");
}
void loop()
{
// Находимся в ожидании RFID-карты
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Cчитываем серийный номер карты
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
// Выводим серийный номер карты
Serial.print(F("Card UID:"));
String cardContent = "";
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
cardContent.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
cardContent.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
// Перезаписываем значения метки
byte newData[] = {11, 22, 33, 44}; // Новые данные для записи0xDE, 0xAD, 0xBE, 0xEF
byte dataLen = sizeof(newData);
if (mfrc522.MIFARE_Write(1, newData, dataLen))
{
Serial.println(F("Data written successfully"));
}
else
{
Serial.println(F("Error writing data"));
}
// Для того, чтобы проверить, что значения метки были перезаписаны, можем считать данные с метки
byte readData[dataLen];
if (mfrc522.MIFARE_Read(1, readData, &dataLen) && memcmp(newData, readData, dataLen) == 0)
{
Serial.println(F("готово"));
}
else
{
Serial.println(F("нет"));
}
mfrc522.PICC_HaltA(); // Завершаем работу с картой
}
ардуинка-это вещь!