Программатор rfid ключей на ардуино

Материалы:

* Arduino Uno
* Модуль RFID RC522
* Ключи RFID (125 кГц или 13,56 МГц)
* Светодиод
* Резистор 220 Ом

Схема подключения:

* VCC модуля RC522 к 5В Arduino
* RST модуля RC522 к пину 9 Arduino
* GND модуля RC522 к GND Arduino
* SDA модуля RC522 к пину A4 Arduino
* SCL модуля RC522 к пину A5 Arduino
* Антенна модуля RC522 к антенне (входит в комплект)
* Светодиод (анод) к пину 13 Arduino через резистор 220 Ом
* Светодиод (катод) к GND Arduino

Код программы:

«`c++
#include
#include

MFRC522 rfid(9, A4, A5);
int ledPin = 13;

void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
}

void loop() {
// Считывание карты RFID
if (rfid.PICC_IsNewCardPresent()) {
if (rfid.PICC_ReadCardSerial()) {
// Печать UID карты
Serial.print(«UID карты: «);
for (byte i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? "0" : ""); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); // Запись ключа byte key[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; byte sector = 1; byte block = 0; if (rfid.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, sector, key, &rfid.uid)) { if (rfid.PCD_WriteBlock(sector, block, key)) { Serial.println("Ключ записан!"); } else { Serial.println("Ошибка записи ключа!"); } } else { Serial.println("Ошибка аутентификации!"); } digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); } } } ``` Описание программы: * Программа инициализирует модуль RC522 и светодиод. * В цикле `loop()`: * Считывается карта RFID. * Если карта прочитана, печатается ее UID. * Записывается ключ в первый блок первого сектора карты. * Если запись выполнена успешно, загорается светодиод на 1 секунду.

Оцените статью