Плата MFRC522 не обнаружена. Красное светодиодное освещение

Мега 2560. Я не могу обнаружить плату RFID. Код ниже и выводит «Не найдена плата MFRC522». Я также успешно протестировал некоторые другие библиотеки и тестовый код.

Я трижды проверил провода (контакт 3,3 В, заземление и контакты 8 и 9 ШИМ).

У меня есть несколько вопросов:

  1. Все руководства показывают, что MOSI, MISO, SCK необходимо подключать к цифровым контактам 50, 51, 52. Но я не понимаю, почему это важно, потому что на них нет ссылок ни в одном коде, который я использовал. найденный? Они действительно необходимы? И если да, то обязательно ли это 50,51,52? Разве это не может быть любой другой цифровой вывод?

  2. Сначала я случайно подключил его к 5 В, может быть, на 1 минуту. Может ли он быть сожжен? Светодиод по-прежнему горит КРАСНЫМ при подключении питания.

  3. Если бы проблема заключалась в том, что (правильная) библиотека не была загружена, разве я не получил бы ошибку компиляции?

Я запускаю этот код:

#include <MFRC522.h>
#include <SPI.h>

#define SAD 9
#define RST 8

MFRC522 nfc(SAD, RST);

void setup() {
  SPI.begin();
  Serial.begin(115200);

  Serial.println("Looking for MFRC522.");
  nfc.begin();

  uint8_t version = nfc.getFirmwareVersion();
  if (! version) {
    Serial.print("Didn't find MFRC522 board.");
    while(1); // остановка
  }

  Serial.print("Found chip MFRC522 ");
  Serial.print("Firmware ver. 0x");
  Serial.print(version, HEX);
  Serial.println(".");
  
  if (nfc.digitalSelfTestPass()) {
      Serial.print("Digital self test by MFRC522 passed.");
  } else {
      Serial.print("Digital self test by MFRC522 failed.");
  }
}

void loop() {

}

, 👍2

Обсуждение

Я почти попытался ответить на это одним гигантским ответом, несмотря на то, что вы действительно спрашиваете о трех вещах, о которых вы знаете, и о большем количестве вещей, чем это. Но потом я увидел _"Я также успешно протестировал некоторые другие библиотеки и тестовый код"_ О каком успехе мы здесь ходим, и был ли он достигнут до или после подключения 5V к плате? Потому что, если «успех» заключался в том, что вы получили показания, вы должны сказать, удалось ли вам это сделать после подачи на него 5 В. Тем не менее, было бы лучше выбрать один вопрос и пойти с ним., @timemage


1 ответ


1

Добро пожаловать! Надеемся, мы сможем вам помочь. Вам не нужно подключать MOSI, MISO, SCK, CS, если вы не хотите, однако без их правильного подключения это не будет работать. Обратите внимание, что вы не упомянули вывод CS, который также необходим, поскольку именно он сообщает MFRC522, что он выбран. Эти контакты используются для связи с устройством. Контакты могут быть разными для разных плат, но вам нужно проверить это в паспорте. Цифры кажутся правильными для Mega.

Светодиод сообщает вам о наличии питания, но никоим образом не говорит о том, что плата исправна. Вы сожгли его, вероятно, потому что MFRC522 - это устройство 3V3, но это не дано, так как я не знаю, к какому контакту вы подключили 5V. Более чем несколько наносекунд при напряжении выше номинального имеют тенденцию ломать вещи, но вам может повезти, у меня нет возможности узнать. Мега - 5 В, так что, вероятно, все будет в порядке.

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

,