
Интернет-магазин «Неглупый Дом»
RDM6300 отдаёт код метки 125 кГц по UART, при считывании любой метки Arduino выводит приветствие на дисплей.
RDM6300 — считыватель RFID-меток стандарта EM4100 на частоте 125 кГц: когда пассивная метка (без собственной батарейки) попадает в электромагнитное поле катушки считывателя, она использует энергию этого поля, чтобы один раз передать свой уникальный код обратно — классическая технология пассивной RFID, применяемая в домофонах и проездных.
Модуль отдаёт этот код по UART в виде пакета, обёрнутого служебными байтами-маркерами: 0x02 обозначает начало пакета, 0x03 — конец. В промежутке между ними идут собственно байты UID метки в виде ASCII-символов. Проект в текущем виде использует это лишь как триггер «метка приложена» — он не сверяет конкретный UID, а просто реагирует на любое успешное считывание, хотя весь код метки уже сохранён в `buffer` и доступен для дальнейшей проверки.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
SoftwareSerial rfidSerial(2, 3); // RX, TX
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес 0x27 — у некоторых плат 0x3F
byte buffer[14];
byte idx = 0;
void setup() {
Serial.begin(9600);
rfidSerial.begin(9600);
lcd.init();
lcd.backlight();
lcd.print("Приложите метку");
}
void loop() {
if (rfidSerial.available()) {
byte b = rfidSerial.read();
if (b == 0x02) {
idx = 0; // начало пакета — сбрасываем буфер
} else if (b == 0x03) {
// конец пакета — вывели приветствие (buffer уже содержит код метки)
Serial.println("Метка считана");
lcd.clear();
lcd.print("Привет!");
delay(1500);
lcd.clear();
lcd.print("Приложите метку");
} else if (idx < 14) {
buffer[idx++] = b;
}
}
}
RDM6300 передаёт код метки пакетом между байтами-маркерами 0x02 (начало) и 0x03 (конец) — в примере он просто ловится как триггер, а не разбирается на UID, но `buffer` уже содержит все байты пакета для дальнейшей проверки конкретной метки.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 482 ₽ 434 ₽ (экономия 48 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.