Дубликатор на Arduino чаще всего собирают для копирования домофонных ключей iButton (DS1990A) и RFID-меток стандарта EM-Marin на частоте 125 кГц — именно эти два формата встречаются в подавляющем большинстве подъездных домофонов. Прежде чем покупать компоненты, определите, какой тип ключа вы планируете копировать: для контактных «таблеток» iButton нужен считыватель с однопроводным интерфейсом 1-Wire, а для бесконтактных карт и брелоков — модуль RDM6300 или аналогичный RFID-ридер.

В этой статье разберём оба варианта: какие компоненты понадобятся, как подключить модули к плате, какой скетч использовать для чтения и записи, а также какие ограничения и подводные камни ждут при копировании ключей разных форматов. Отдельно остановимся на записываемых болванках — без правильной заготовки даже идеально собранный дубликатор не создаст рабочую копию.

Принцип работы дубликатора ключей

Любой домофонный ключ содержит уникальный код — последовательность байт, которую контроллер домофона сравнивает с базой разрешённых идентификаторов. Дубликатор выполняет две операции: чтение кода с оригинального ключа и запись этого кода на чистую перезаписываемую болванку. Arduino здесь выступает в роли контроллера, который опрашивает считыватель, сохраняет код в память и передаёт его на записывающее устройство.

Важно понимать ограничение: скопировать можно только ключи с фиксированным кодом. Современные системы с криптографической защитой (например, метки Mifare с защищёнными секторами или ключи с динамическим кодом) простым дубликатором на Arduino не копируются — там требуется совсем другой уровень оборудования и знаний.

💡

Дубликатор на Arduino копирует только ключи с фиксированным кодом: iButton DS1990A и RFID-метки 125 кГц. Криптозащищённые метки Mifare DESFire и подобные таким устройством не дублируются.

Какие ключи можно скопировать

Перед сборкой полезно разобраться в форматах. Контактные ключи-«таблетки» чаще всего построены на микросхеме DS1990A (или её аналогах TM1990, RW1990) и работают по протоколу 1-Wire. Бесконтактные брелоки и карты подъездных домофонов обычно используют стандарт EM-Marin на частоте 125 кГц. Реже встречаются ключи форматов Cyfral и Metakom — для них потребуются специфические схемы считывателей.

Формат ключаТипБолванка для копииСложность копирования
DS1990A / TM1990Контактный (iButton)RW1990, TM08Низкая
EM-Marin 125 кГцБесконтактный RFIDT5577, EM4305Низкая
CyfralБесконтактныйСпециальные заготовкиСредняя
MetakomКонтактныйСпециальные заготовкиСредняя
Mifare Classic (защищённый)Бесконтактный 13,56 МГцНе копируется простым способомВысокая

Обратите внимание на строку с болванками: оригинальные ключи DS1990A перезаписать нельзя, код в них прошит на заводе. Для копий используются перезаписываемые аналоги — RW1990 для контактных ключей и T5577 для RFID-меток 125 кГц. При покупке проверяйте, что заготовка именно перезаписываемая.

📊 Какой тип ключей вы планируете копировать?
Домофонные iButton (таблетки)
RFID-брелоки и карты 125 кГц
Оба типа сразу
Пока изучаю тему

Необходимые компоненты

Базовый набор для дубликатора iButton-ключей минимален и недорог. Подойдёт практически любая плата на ATmega328 — Arduino Uno, Nano или Pro Mini. Для RFID-варианта дополнительно понадобится модуль считывателя 125 кГц.

  • 🔧 Плата Arduino — Uno или Nano, разницы в функционале для этой задачи нет
  • 🔌 Считыватель iButton — контактная площадка с двумя выводами или просто два провода с зажимами
  • 📡 Модуль RDM6300 — если планируется копирование RFID-меток 125 кГц
  • 💾 Перезаписываемые болванки — RW1990 для iButton, T5577 для RFID
  • 🔘 Кнопки и резисторы — для выбора режима чтение/запись
  • 📟 Дисплей (опционально) — OLED 0.96" на I2C для отображения считанного кода

Дисплей не обязателен — код ключа можно выводить в монитор порта через USB. Но автономное устройство с экраном и питанием от батареи удобнее в практическом использовании.

Схема подключения считывателя iButton

Контактный ключ DS1990A работает по протоколу 1-Wire: данные и питание идут по одной линии, второй контакт — общий провод (GND). Для подключения к Arduino нужна подтяжка линии данных к питанию через резистор 4,7 кОм — это стандартное требование шины 1-Wire, без резистора шина работать не будет.

Типовое подключение выглядит так: сигнальный контакт считывателя — на цифровой пин (в примерах библиотеки OneWire обычно используется пин D2 или D10), общий контакт — на GND, резистор 4,7 кОм — между сигнальной линией и +5V. Кнопки режимов подключаются на свободные цифровые пины с подтяжкой к земле.

Считыватель iButton:

DATA → D2 (через схему) + резистор 4,7 кОм на +5V

GND → GND Arduino

⚠️ Внимание: не путайте полярность при подключении записывающего контакта к болванке RW1990. Хотя ключи DS1990A устойчивы к переполюсовке, некорректная схема записи может вывести перезаписываемую заготовку из строя. Проверяйте схему конкретного скетча перед первой записью.

☑️ Проверка перед первым запуском

Выполнено: 0 / 5

Скетч для чтения и записи ключей

Для работы с шиной 1-Wire используется библиотека OneWire — она доступна в стандартном менеджере библиотек Arduino IDE. Логика скетча проста: в режиме чтения контроллер опрашивает шину, при обнаружении ключа считывает его 8-байтовый ROM-код и сохраняет в массив. В режиме записи этот массив передаётся на болванку RW1990 через специальную последовательность команд.

Фрагмент чтения кода ключа выглядит примерно так:

#include <OneWire.h>

OneWire ds(2); // шина 1-Wire на пине D2

void loop() {

byte addr[8];

if (ds.search(addr)) {

// ключ обнаружен — addr[] содержит его код

ds.reset_search();

}

}

Здесь ds.search(addr) выполняет поиск устройства на шине и заполняет массив addr восьми байтами уникального кода. Первый байт — код семейства (для DS1990A это 0x01), далее шесть байт серийного номера и контрольная сумма CRC. Запись на RW1990 сложнее: болванка требует особой последовательности импульсов, поэтому проще взять готовый проверенный скетч дубликатора из открытых источников, чем писать процедуру записи с нуля.

Почему нельзя просто «скопировать байты» на болванку

RW1990 эмулирует протокол DS1990A, но для записи нового кода использует расширенные команды, которых нет у оригинала. Контроллер должен перевести болванку в режим программирования, передать новый код и подтвердить запись. Тайминги этих операций критичны — поэтому в готовых проектах используются отлаженные функции записи.

RFID-дубликатор на модуле RDM6300

Для копирования бесконтактных меток 125 кГц схема другая. Модуль RDM6300 сам выполняет всю радиочастотную часть и выдаёт код карты через последовательный интерфейс UART — Arduino остаётся только принять данные. Подключение: VCC модуля к +5V, GND к GND, выход TX модуля — к цифровому пину Arduino (удобно использовать программный UART через библиотеку SoftwareSerial, чтобы не конфликтовать с USB-портом).

Запись на болванку T5577 — более сложная задача: этот чип программируется радиосигналом по специальному протоколу, и RDM6300 писать не умеет, он только читает. Для записи T5577 обычно применяют отдельные записывающие модули или собирают схему записи на транзисторном ключе с катушкой. Если цель — только читать коды карт и выводить их на экран, RDM6300 справляется отлично.

💡

Начинайте с чтения: сначала добейтесь стабильного вывода кода ключа в монитор порта, и только потом добавляйте функцию записи. Так проще локализовать ошибку — вы будете точно знать, на каком этапе сбой.

Типичные ошибки при сборке

Чаще всего самодельный дубликатор «не видит» ключ по банальным причинам. Отсутствие подтягивающего резистора на линии 1-Wire — лидер среди ошибок: без него шина физически не может сформировать корректные уровни сигнала. Вторая частая проблема — несовпадение пина в скетче с реальным подключением.

  • Нет резистора 4,7 кОм — шина 1-Wire не работает, ключ не определяется
  • Неверный пин в коде — проверьте соответствие скетча и схемы
  • Плохой контакт — окисленная площадка ключа или неплотный прижим дают сбои чтения
  • Одноразовая болванка — дешёвые «пустышки» TM1990 без поддержки записи не прошьются
  • Питание от слабого источника — просадки напряжения вызывают сбои при записи
⚠️ Внимание: некоторые домофоны ведут «чёрный список» скопированных ключей или проверяют время отклика ключа. Если копия не открывает дверь, хотя код считан верно, возможная причина — защитные механизмы конкретного домофона. Проверить это можно, попробовав копию на другом домофоне того же формата.

Ещё один нюанс: контрольная сумма CRC в последнем байте кода. Если ключ читается с ошибками (код меняется от считывания к считыванию), проблема почти наверняка в контакте или в питании, а не в скетче.

💡

90% проблем самодельного дубликатора — это отсутствие подтяжки 4,7 кОм, плохой контакт с ключом и неперезаписываемая болванка. Проверяйте эти три пункта в первую очередь.

Правовые и практические аспекты

Копирование собственного ключа от собственного подъезда — бытовая задача, но стоит помнить о границах. Изготовление дубликатов ключей для доступа в чужие помещения без согласия владельца или управляющей организации может повлечь ответственность. Используйте дубликатор для резервных копий своих ключей, восстановления утерянного доступа по согласованию с обслуживающей организацией и в учебных целях.

С практической стороны: перед записью болванки всегда сверяйте считанный код с повторным чтением оригинала — два подряд совпавших считывания гарантируют, что вы записываете корректный код, а не мусор из-за плохого контакта. После записи проверяйте копию чтением: болванка должна отдавать ровно тот же код, что и оригинал.

Часто задаваемые вопросы

Подойдёт ли Arduino Nano вместо Uno?

Да, разницы нет — обе платы построены на одном микроконтроллере ATmega328. Nano даже удобнее для компактного автономного устройства. Убедитесь только, что пины в скетче соответствуют вашей разводке.

Можно ли скопировать ключ от домофона с дисплеем и криптозащитой?

Если ключ использует фиксированный код (DS1990A, EM-Marin) — да. Если система применяет криптографические метки (Mifare DESFire, защищённые сектора Mifare Classic) — простой дубликатор на Arduino не справится, потребуется специализированное оборудование.

Почему записанная копия не открывает домофон?

Возможные причины: ошибка при чтении оригинала (проверьте код повторным считыванием), некачественная болванка, сбой записи или защитные механизмы домофона (фильтрация дубликатов). Сначала считайте код с готовой копии и сравните с оригиналом — если коды совпадают, проблема на стороне домофона.

Нужен ли дисплей для дубликатора?

Нет, код ключа можно выводить в монитор порта Arduino IDE через USB. Дисплей нужен только для автономной работы без компьютера. Начинать сборку разумно без дисплея, а экран добавить после отладки основных функций.

Где взять перезаписываемые болванки?

Болванки RW1990 (для iButton) и T5577 (для RFID 125 кГц) продаются в магазинах радиодеталей и на маркетплейсах. При покупке проверяйте в описании, что заготовка перезаписываемая (rewritable) — одноразовые аналоги внешне неотличимы, но не прошиваются.