MFRCC522 "Является дефектом или Неизвестным"
Я использую считыватель RC522 с Arduino UNO. Это библиотека, которой я пользуюсь.
Но когда я пытаюсь проверить прошивку, в серийном номере я получаю такую ошибку: Версия прошивки: 0x12, результат: дефект или неизвестен
Я проверил соединения, и все они были правильными. Мой RC522 нуждается в 3,3 В, и он подключен к контакту 3,3 В моей платы Arduino. Также все штифты припаяны.
Вот код проверки прошивки (он прилагался к библиотеке):
/*
* --------------------------------------------------------------------------------------------------------------------
* Пример скетча/программы для тестирования прошивки.
* --------------------------------------------------------------------------------------------------------------------
* Это пример библиотеки MFRC522; для получения дополнительной информации и других примеров см.: https://github.com/miguelbalboa/rfid
*
* В этом примере проверьте прошивку модуля чтения MFRC522, можно проверить только известную версию. Если тест прошел
* это не значит, что ваш модуль безупречен! Некоторые модули имеют плохие или сломанные антенны или PICC сломан.
*
* @автор Rotzbua
* лицензия @license Выпущена в общественное достояние.
*
* Типичная используемая компоновка контактов:
* -----------------------------------------------------------------------------------------
* MFRC522 Arduino Arduino Arduino Arduino Arduino
* Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro
* Signal Pin Pin Pin Pin Pin Pin
* -----------------------------------------------------------------------------------------
* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
* SPI SS SDA(SS) 10 53 D10 10 10
* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
*/
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 // Настраивается, см. типичную компоновку выводов выше
#define SS_PIN 10 // Конфигурируемый, см. типичный макет pin выше
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
/**
* Проверить прошивку только один раз при запуске
*/
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 module
delay(5);
Serial.println(F("*****************************"));
Serial.println(F("MFRC522 Digital self test"));
Serial.println(F("*****************************"));
mfrc522.PCD_DumpVersionToSerial(); // Show version of PCD - MFRC522 Card Reader
Serial.println(F("-----------------------------"));
Serial.println(F("Only known versions supported"));
Serial.println(F("-----------------------------"));
Serial.println(F("Performing test..."));
bool result = mfrc522.PCD_PerformSelfTest(); // perform the test
Serial.println(F("-----------------------------"));
Serial.print(F("Result: "));
if (result)
Serial.println(F("OK"));
else
Serial.println(F("DEFECT or UNKNOWN"));
Serial.println();
}
void loop() {}
Edit: Процесс, которым я следовал, чтобы установить библиотеку, был: Sketch > include library >> add .Библиотека Zip
@alan smith, 👍1
Обсуждение0
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Вы также установили заземление между Arduino и MFRC522, верно?, @timemage
вы имеете в виду подключение GND MFRC22 к одному из выводов GND arduino, @alan smith
Схемы, как правило, работают лучше, когда они есть... *схемы*. Так что, да, вот в чем вопрос., @timemage
ну ... да, я это сделал, @alan smith
Я загрузил ваш код, как показано на рисунке, в официальный UNO и подключил его к модулю RC522 ("RFID-RC522"), как описано. Он показывает версию прошивки и " Результат: ОК`. Я сделал это под ядром AVR 1.8.3, используя как основную ветвь, так и самый последний тег (1.4.8) репозитория библиотеки. Просмотр некоторых хорошо освещенных изображений проводки и припоя в фокусе может быть информативным., @timemage
Некоторые идеи: Контакты SPI вашего Arduino. являются 5 В, независимо от того, используете ли вы вывод 3,3 В для питания RFC. Возможно, Arduino убил RFC или, возможно, на выводе RFC MISO недостаточно напряжения для связи с Arduino. А вывод питания 3,3 вольта Arduino может подавать ток только 150 мА. Это может быть слишком мало для устройства, которое должно передавать RFID - чип по воздуху., @Peter Paul Kiefer
Я заметил это и разделяю ваши сомнения по поводу сигналов, идущих в обоих направлениях; Я бы не стал разрабатывать что-то подобное. Но, судя по тому, что я видел, эти вещи, похоже, не проявляются как проблемы для пользователей этих модулей, хотя и не знаю почему. Хотя это может быть первое, что я вижу. Когда-нибудь, когда мне станет скучно, я, по крайней мере, измерю ток на сигналах направления главного выхода 5 В., @timemage