RFID-модуль RC522 TZT для Arduino  от магазина ArdStudio в Москве
RFID‑модуль RC522 — это универсальное решение для: бесконтактной идентификации объектов; систем контроля доступа; автоматизации учёта; образовательных экспериментов; интерактивных проектов.


  • Артикул AS00356
180 ₽
Количество
шт
RFID‑модуль RC522 — популярное решение для проектов, требующих бесконтактной идентификации объектов. На базе микросхемы MFRC522 от NXP он позволяет считывать и записывать данные на RFID‑метки стандарта MIFARE (ISO 14443 Type A). Модуль широко применяется в системах контроля доступа, автоматизации, робототехнике и образовательных проектах.

Как устроен и как работает RFID-модуль RC522 TZT для Arduino

Основные компоненты:
  • микросхема MFRC522 — ядро модуля, обеспечивающее радиообмен;
  • встроенная антенна (рамочная, на плате);
  • разъёмы для подключения к микроконтроллеру;
  • поддержка нескольких интерфейсов (SPI, UART, I²C).

Принцип работы RFID-модуля RC522 TZT для Arduino:

  1. Модуль генерирует электромагнитное поле на частоте 13,5 МГц.
  2. RFID‑метка (карта, брелок), попадая в поле, получает энергию и активируется.
  3. Между модулем и меткой устанавливается двусторонняя связь по протоколу MIFARE.
  4. Модуль считывает уникальный ID метки или обменивается данными (чтение/запись).
  5. Данные передаются в микроконтроллер (например, Arduino) через выбранный интерфейс.
  6. Особенность: модуль может работать с несколькими метками одновременно и поддерживает операции записи.
Ключевые характеристики RFID-модуля RC522 TZT для Arduino
1. Рабочая частота: 13,56 МГц.
2. Стандарт: ISO 14443 Type A (MIFARE).
3. Поддерживаемые метки: MIFARE S50, S70, UltraLight, Pro, DESfire.
4. Дальность считывания: 0–60 мм (зависит от типа метки и условий).
5. Напряжение питания: 3,3 В (обязательно!).
6. Интерфейсы:
  • SPI (основной, выбран на плате);
  • UART;
  • I²C.
7. Скорость передачи (SPI): до 10 Мбит/с.
8. Потребляемый ток:
  • активный режим: 13–26 мА;
  • ожидание: 10–13 мА;
  • спящий режим: < 80 мкА.
9. Размеры модуля: 40 × 60 мм.
10. Рабочая температура: –20 … +80 °C.
11. Влажность: 5–95 % (без конденсации).

Важные замечания:
Используйте только 3,3 В — питание 5 В выведет модуль из строя.
Для надёжности применяйте провода длиной ≤ 20 см.
При нестабильной работе добавьте конденсатор 0,1 мкФ между 3.3V и GND.
Пин RST можно подключить к любому цифровому пину Arduino (настраивается в библиотеке).

Типичные проекты и сценарии
1. Система контроля доступа
  • дверь с RFID‑ключом;
  • турникет для прохода по карте.
2. Идентификация объектов
  • учёт инвентаря (метка на каждом предмете);
  • маркировка оборудования.
3. Робототехника
  • робот, реагирующий на метки (например, доставка по зонам);
  • навигация по RFID‑меткам.
4. Платёжные системы
  • имитация бесконтактной оплаты;
  • система лояльности (бонусы по карте).
5. Образовательные проекты
  • изучение RFID‑технологий;
  • лабораторные работы по беспроводной связи.
6. Умный дом
  • включение света по карте;
  • персонализация настроек (разные профили для разных меток).
7. Игры и интерактивные инсталляции
  • квест с метками;
  • активация контента при поднесении карты.
Плюсы и ограничения
Преимущества:
  • бесконтактное считывание (нет механического износа);
  • поддержка записи данных на метки;
  • работа с несколькими метками одновременно;
  • низкая стоимость модуля;
  • совместимость с Arduino и другими микроконтроллерами;
  • открытый стандарт (MIFARE, ISO 14443).
Ограничения:
  • требует строго 3,3 В питания (опасность повреждения при 5 В);
  • небольшая дальность считывания (до 6 см);
  • чувствительность к металлическим предметам вблизи антенны;
  • не все метки поддерживают запись (проверяйте тип метки);
  • сложность работы с зашифрованными секторами MIFARE (требуется ключ).
Советы по эксплуатации RFID-модуля RC522 TZT для Arduino
  • Используйте стабилизатор 3,3 В. Если Arduino питается от 5 В, применяйте DC‑DC преобразователь или LDO‑стабилизатор.
  • Оптимизируйте антенну. Не закрывайте её металлическими предметами — это снижает дальность.
  • Проверяйте тип метки. Для записи убедитесь, что метка поддерживает MIFARE Classic 1K (S50).
  • Защищайте от помех. Размещайте модуль вдали от мощных моторов и реле.
  • Тестируйте UID. Запишите UID всех меток — используйте их для идентификации в коде.
  • Добавляйте задержку. После считывания делайте паузу (500–1000 мс), чтобы избежать многократного срабатывания.
  • Используйте экранированные провода при длине > 15 см.
  • Обновляйте библиотеку. Следите за новыми версиями MFRC522 — они могут исправлять ошибки и добавлять функции.
Скетч для RFID‑модуля RC522 TZT на Arduino
Необходимые компоненты:
  1. Плата Arduino (Uno, Nano, Mega и др.);
  2. Модуль RFID RC522;
  3. RFID‑метка/карта (идёт в комплекте);
  4. Соединительные провода.
Важные замечания по питанию
Модуль работает на 3, В — подключение к 5 В может вывести его из строя!
Подключайте 3.3V модуля только к выходу 3.3 V Arduino.

Схема подключения (интерфейс SPI)
  • Пин RC522    Пин Arduino Uno/Nano    Назначение
  • SDA (SS)    10    Выбор ведомого устройства
  • SCK    13    Тактовый сигнал
  • MOSI    11    Данные от мастера
  • MISO    12    Данные от ведомого
  • RST    9    Сброс
  • GND    GND    Земля
  • 3.3V    3.3V    Питание
Примечание: можно также использовать разъём ICSP на Arduino для подключения SCK, MISO, MOSI и GND.

Подготовка: установка библиотеки
Для работы нужна библиотека MFRC522:
В Arduino IDE выберите Скетч → Подключить библиотеку → Управление библиотеками.
В строке поиска введите «MFRC522».
Выберите библиотеку MFRC522 by GithubCommunity и установите её.

Базовый скетч (считывание UID метки)

#include <SPI.h>
#include <MFRC522.h>


#define SS_PIN  10  // Пин SDA (SS)
#define RST_PIN 9  // Пин RST

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Создаём объект модуля

void setup() {
  Serial.begin(9600);
  SPI.begin();           // Инициализируем шину SPI
  mfrc522.PCD_Init();   // Инициализируем RC522
  Serial.println("Поднесите карту к считывателю...");
}

void loop() {
  // Проверяем, есть ли новая карта
  if (!mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  // Проверяем, можем ли считать UID
  if (!mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  // Выводим UID карты в Serial Monitor
  Serial.print("UID карты: ");
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.println();

  mfrc522.PICC_HaltA();  // Останавливаем чтение карты
  delay(1000);          // Ждём 1 с перед следующим чтением
}


Расширенный скетч (контроль доступа по UID)

#include <SPI.h>
#include <MFRC522.h>


#define SS_PIN  10
#define RST_PIN 9


MFRC522 mfrc522(SS_PIN, RST_PIN);


// Разрешённый UID (замените на UID вашей карты)
byte allowedUID[] = {0xDE, 0xAD, 0xBE, 0xEF};


void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println("Поднесите карту...");
}

void loop() {
  if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  Serial.print("UID карты: ");
  bool accessGranted = true;


  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);

    // Сравниваем с разрешённым UID
    if (mfrc522.uid.uidByte[i] != allowedUID[i]) {
      accessGranted = false;
    }
  }
  Serial.println();

  if (accessGranted) {
    Serial.println("→ Доступ разрешён!");
  } else {
    Serial.println("→ Доступ запрещён!");
  }

  mfrc522.PICC_HaltA();
  delay(2000);  // Ждать 2 с перед следующим чтением
}


Пояснения к коду
1. Библиотеки
  • SPI.h — стандартная библиотека для работы с интерфейсом SPI.
  • MFRC522.h — библиотека для управления модулем RC522.
2. Инициализация
  • SPI.begin() — запускает шину SPI.
  • mfrc522.PCD_Init() — инициализирует модуль RC522.
3. Проверка наличия карты
  • mfrc522.PICC_IsNewCardPresent() — возвращает true, если карта поднесена.
  • mfrc522.PICC_ReadCardSerial() — считывает UID карты.
4. Работа с UID
  • mfrc522.uid.uidByte[i] — массив байт UID (обычно 4–7 байт).
  • mfrc522.uid.size — длина UID в байтах.
  • UID выводится в шестнадцатеричном формате (HEX).
5. Завершение чтения
  • mfrc522.PICC_HaltA() — останавливает чтение карты, чтобы избежать повторного срабатывания.
Рекомендации по настройке
1. Проверка подключения
  • Убедитесь, что модуль подключён к 3. В, а не к 5 В.
  • Проверьте соединения пинов SDA, SCK, MOSI, MISO, RST, GND.
2. Определение UID карты
  • Запустите базовый скетч и поднесите карту к модулю.
  • Запишите UID из Serial Monitor и используйте его в расширенном скетче (массив allowedUID).
3. Отладка
  • Откройте Serial Monitor (Ctrl+Shift+M) для просмотра UID и сообщений.
  • Если UID не отображается, проверьте питание и соединения.
4. Чувствительность модуля
  • Расстояние чтения — до 5–6 см (зависит от карты и условий).
  • Избегайте металлических предметов рядом с модулем — они могут экранировать сигнал.
5. Совместимость карт
  • Модуль поддерживает карты стандарта Mifare (13.56 МГц).
  • Некоторые банковские/транспортные карты могут не читаться из‑за защиты.
Возможные доработки
  1. Запись данных на карту — используйте функции MIFARE_Write() для сохранения информации.
  2. Логирование событий — сохраняйте UID и время в EEPROM или на SD‑карту.
  3. Интеграция с сервером — передавайте данные через Ethernet/Wi‑Fi (ESP8266/ESP32).
  4. Управление реле — подключайте реле для контроля дверей/замков при успешном чтении UID.
  5. Мульти‑UID — храните несколько разрешённых UID в массиве и проверяйте их в цикле.

Скетч для записи данных на RFID‑карты (Mifare) через модуль RC522 на Arduino

Важно!

  • Модуль RC522 работает на 3, В — не подключайте к 5 В!
  • Для записи требуется карта стандарта Mifare Classic 1K (1024 байт, 16 секторов по 4 блока).
  • Каждый сектор защищён ключом A (по умолчанию 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF).
Схема подключения (SPI)
  • Пин RC522    Пин Arduino Uno/Nano    Назначение
  • SDA (SS)    10    Выбор ведомого устройства
  • SCK    13    Тактовый сигнал
  • MOSI    11    Данные от мастера
  • MISO    12    Данные от ведомого
  • RST    9    Сброс
  • GND    GND    Земля
  • 3.3V    3.3V    Питание
Подготовка: установка библиотеки
Установите библиотеку MFRC522 через Arduino IDE:
  1. Скетч → Подключить библиотеку → Управление библиотеками.
  2. Поиск: «MFRC522».
  3. Выберите MFRC522 by GithubCommunity → Установите.
Скетч: запись и чтение данных

#include <SPI.h>
#include <MFRC522.h>


#define SS_PIN  10
#define RST_PIN 9


MFRC522 mfrc522(SS_PIN, RST_PIN);


// Ключ доступа к сектору (по умолчанию для Mifare Classic)
byte keyA[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};


// Данные для записи (16 байт = 1 блок)
byte writeData[16] = {
  'H', 'e', 'l', 'l', 'o', ' ', 'R', 'F', 'I', 'D', '!', 
  0x00, 0x01, 0x02, 0x03, 0x04
};

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println("Поднесите карту для записи...");
}

void loop() {
  // 1. Проверка наличия карты
  if (!mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  if (!mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  Serial.print("UID карты: ");
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.println();


  // 2. Аутентификация сектора 1 (блок 4)
  byte sector = 1;
  byte blockAddr = 4;  // Первый блок сектора 1


  if (!mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, blockAddr, keyA, &(mfrc522.uid))) {
    Serial.println("Ошибка аутентификации!");
    mfrc522.PICC_HaltA();
    return;
  }

  // 3. Запись данных в блок
  if (mfrc522.MIFARE_Write(blockAddr, writeData, 16)) {
    Serial.println("Данные записаны успешно!");
  } else {
    Serial.println("Ошибка записи!");
  }

  delay(500);


  // 4. Чтение данных из блока
  byte readData[18];  // 16 байт + 2 CRC
  if (mfrc522.MIFARE_Read(blockAddr, readData, &byteCount)) {
    Serial.print("Прочитано: ");
    for (byte i = 0; i < 16; i++) {
      if (readData[i] >= 32 && readData[i] <= 126) {
        Serial.write(readData[i]);  // Печатаем символы
      } else {
        Serial.print(" 0x");
        Serial.print(readData[i], HEX);  // HEX для непечатаемых
      }
    }
    Serial.println();
  } else {
    Serial.println("Ошибка чтения!");
  }

  mfrc522.PICC_HaltA();  // Останавливаем чтение
  delay(2000);  // Ждать 2 с перед следующим циклом
}


Пояснения к коду
1. Аутентификация
  • PCD_Authenticate() — проверяет ключ доступа к сектору.
  • Для Mifare Classic 1K ключ A по умолчанию: 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF.
  • Если ключ изменён — укажите свой массив keyA.
2. Запись данных
  • MIFARE_Write(блок, данные, длина) — записывает 1 байт в указанный блок.
  • Блок должен быть в пределах сектора (например, сектор 1 = блоки 4–7).
3. Чтение данных
  • MIFARE_Read(блок, буфер, длина) — считывает 18 байт (16 данных + 2 CRC).
  • В примере выводятся только первые 16 байт.
4.  Структура памяти
  • Карта Mifare 1K: 16 секторов × 4 блока = 64 блока.
  • Каждый блок: 16 байт.
  • Последний блок сектора (например, блок 7 для сектора 1) — содержит ключи и условия доступа. Не записывайте в него без знания ключей!
Рекомендации по настройке
1. Проверка карты
  • Убедитесь, что карта поддерживает запись (Mifare Classic 1K).
  • Некоторые карты (например, транспортные) защищены от записи.
2. Ключ доступа
  • Если карта была перепрограммирована, укажите верный keyA.
  • Для смены ключа используйте MIFARE_UpdateValue() (требует знаний протокола).
3. Отладка
  • Откройте Serial Monitor (Ctrl+Shift+M) для просмотра UID и сообщений.
  • Если аутентификация не проходит — проверьте ключ и тип карты.
4. Безопасность
  • Не записывайте в последний блок сектора без понимания структуры данных.
  • Храните ключи доступа в защищённом месте.
Возможные доработки
  1. Запись в несколько блоков — используйте цикл для заполнения сектора.
  2. Сохранение ключей — храните keyA в EEPROM для повторного использования.
  3. Проверка CRC — анализируйте 2 байта CRC для контроля целостности данных.
  4. Мульти‑секторная запись — записывайте данные в разные сектора с разными ключами.
  5. Интерфейс пользователя — добавьте кнопки/дисплей для выбора данных для записи.
  • Артикул AS00356
  • Бренд TZT
RFID-модуль RC522 TZT для Arduino
180 ₽

Датчик движения HC-SR501 TZT для Arduino

  110 ₽
Артикул
AS00345
шт

Датчик газа MQ-2 TZT для Arduino

  160 ₽
Артикул
AS00323
шт

Адаптер питания 9В, 2А для Arduino

  760 ₽
Артикул
AS00325
шт

Мини-модуль светофора TZT для Arduino

  60 ₽
Артикул
AS00340
шт
Корзина 0 позиций
на сумму 0 ₽