Интернет-магазин «Неглупый Дом»
Во всех остальных RFID-проектах линии SPI RC522 подключаются напрямую к 5V-пинам Arduino — часто работает на практике, но формально выходит за характеристики 3.3V-модуля. Здесь между Arduino и RC522 стоит TXS0108E, корректно согласующий уровни каждой линии SPI.
RC522 считывает UID по SPI так же, как и в остальных проектах — SCK, MOSI, MISO, SS плюс RST. Разница — в согласовании: каждая линия проходит через свой канал TXS0108E, преобразующий 5V Arduino в безопасные 3.3V для RC522 и обратно для MISO.
Двунаправленность TXS0108E принципиальна: данные SPI идут в обе стороны, простой резистивный делитель (однонаправленный) искажал бы сигнал MISO.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.
#include <SPI.h>
#include <MFRC522.h>
const int SS_PIN = 10;
const int RST_PIN = 9;
MFRC522 rfid(SS_PIN, RST_PIN);
unsigned int scanCount = 0;
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
}
void loop() {
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
scanCount++;
for (byte i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i], HEX);
Serial.print(" ");
}
Serial.println();
rfid.PICC_HaltA();
}
Библиотеки SPI и MFRC522 ставятся через Менеджер библиотек — программная часть идентична прямому подключению, разница только в электрической схеме.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 198 ₽ 178 ₽ (экономия 20 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.