Считыватель RFID RC522 не читает чип NTAG216
У меня есть модуль RFID-RC522 на основе чипа MFRC522. Этот чип описан в техническом описании как поддерживающий протоколы «ISO/IEC 14443 A/MIFARE и NTAG». Я подключил его к Arduino Uno, используя рекомендованную проводку в документации для библиотеки MFRC522, которую я использую. У меня есть скетч, который (среди прочего) опрашивает наличие новой карты:
void setup() {
lcd.setup (); // инициализируем ЖК-дисплей
SPI.begin(); // Инициируем шину SPI
mfrc522.PCD_Init(); // Инициализация карты MFRC522
}
void loop() {
// Ищем новые карты
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
lcd.println ("Found new card");
...
}
Этот скетч правильно определяет наличие карты, поставляемой с модулем (я полагаю, что это карта Mifare Classic), но не определяет мой имплант NTAG216. Кто-нибудь знает, почему он не может найти имплантированный чип?
@Jules, 👍0
Обсуждение1 ответ
Я получил комплект RFID (RF522) только на этой неделе, но еще не имел возможности поиграть с ним, а также у меня нет имплантата NTAG216. Но я помню, когда я исследовал их, я увидел пару сообщений, связанных с «Ошибками аутентификации». Проблема для вас (возможно) в том, что они были на Python, а не на C:
https://github.com/mxgxw/MFRC522-python/issues/24
и ссылка Cotix
https://github.com/mj3052/MFRC522-Pi
Посмотрите на них и посмотрите, что они могут вам сказать.
Проблема с функцией PICC_IsNewCardPresent()
заключается в том, что она дает ответ Да/Нет, а не "Да, но есть ошибка". В этом случае он также вернет false
. Но другой код может дать вам подсказку - вам придется покопаться в библиотеке...
Хм. AIUI Я должен быть в состоянии прочитать UID чипа без аутентификации (иначе как бы вы узнали, какой пароль использовать для аутентификации в системе с несколькими картами?), но, как вы предлагаете, я просмотрю библиотеку и посмотрите, есть ли способ узнать об ошибках при обнаружении карт. Жаль, что это, кажется, единственная доступная библиотека Arduino для этого чипа, а в AFAICT почти полностью отсутствует документация :(, @Jules
Изучив это дальше, это не звучит как правильный ответ. Аутентификация требует, чтобы чип был в «активном» состоянии, прежде чем вы сможете начать процесс аутентификации, и предполагается, что метод «PICC_IsNewCardPresent» находит карты, которые находятся в «неактивном» состоянии, и переводит одну из них в «активное», поэтому должен иметь возможность обрабатывать поиск карты без предварительной аутентификации., @Jules
- Использование прерываний с RC522
- Проблема совместного использования MISO с несколькими RFID-считывателями RC522
- rfid_default_keys проверить с помощью RC522
- MFRC522: прошивка неизвестна
- MFRC522 не сканируется карта
- RFID-RC522 не работает, горит красный светодиод
- Считывание одновременно RFID-МЕТКИ с помощью нескольких RFID-считывателей [MFRC522]
- Arduino Uno - Как записать персональные данные в NTAG213 с помощью RFID-RC522
пожалуйста, предоставьте больше вашего кода, из того, что вы предоставили, все, что я вижу, это то, что ваш ЖК-дисплей будет постоянно печатать «Найдена новая карта» снова и снова ... плюс, у вас есть «возврат» в основном цикле ???, @Madivad
@Madivad, этого кода будет достаточно, чтобы напечатать «Найдена новая карта», когда любая совместимая карта подносится близко к считывателю - возможно, сама карта неисправна?, @Jaromanda X
Привет @JaromandaX, проблема в том, что оператор печати находится за пределами условного выражения if, но внутри основного цикла выполнения, который будет просто постоянно печатать «Найдена новая карта». Найдена новая карта. Найдена новая карта. до бесконечности, @Madivad
@Madivad, вы были бы правы, если бы условный «возврат» отсутствовал, однако он не отсутствует, и поэтому вы не правы, @Jaromanda X
@JaromandaX Я понимаю вашу точку зрения и исправляюсь. Возврат **выполняется**, если нет новой карты и выполнение остановлено, но пока карта присутствует,
println
будет просто повторяться. **До чего** не доходит ОП. Я понял это сейчас. Раньше я не рассматривал «возврат» в основном цикле и не понимал его последствий. Пока я не провел несколько экспериментов :), @MadivadМои извинения за возрождение такого старого сообщения, но было ли это когда-либо решено. У меня точно такая проблема. Любая помощь будет оценена по достоинству., @jraydoran