Совместное использование RFID и датчика отпечатков пальцев

В своем проекте я использую как RFID, так и датчик отпечатков пальцев. При запуске программы RFID обнаруживается, но датчик отпечатков пальцев не обнаруживается, и, следовательно, мой код не обрабатывается.

Вот мой код

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

#define SAD 10
#define RST 5

MFRC522 nfc(SAD, RST);

uint8_t id;
uint8_t getFingerprintEnroll();
int getFingerprintIDez();

// контакт №2 — ВХОД от датчика (ЗЕЛЕНЫЙ провод)
// контакт №3 ВЫХОД от Arduino (БЕЛЫЙ провод)
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup() {
  SPI.begin();
  Serial.begin(115200);
  Serial.println("Looking for MFRC522.");
  nfc.begin();
  byte 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(".");
  Serial.begin(9600);

  Serial.println("Fingerprint and RFID Test");

  finger.begin(57600);
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1);
  }    
}

char abc;

void loop() {
  abc = Serial.read();
  switch (abc) {
    case '1': {
      // метод регистрации
    }
    break ;
    case '2': {
      // проверяем метод
    }
    break;
    case '3': {
      // метод RFID
    }
  }
}

, 👍2

Обсуждение

Что происходит?, @Mark Smith

последовательный монитор ничего не показывает. когда я запускаю индивидуальный код RFID и отпечатка пальца, они оба работают правильно, но при присоединении к ним не работает, @Ravi

Буквально ничего? В вашей настройке() нет даже «Тест отпечатков пальцев и RFID»?, @Mark Smith

«Тест отпечатка пальца и RFID» работает, если я пишу «rfid.init()» после этого кода. если я напишу перед «тест отпечатка пальца и RFID», то ничего не покажет, @Ravi

Не могли бы вы заменить свой код [минимальным, полным, проверяемым примером](https://stackoverflow.com/help/mcve), пожалуйста? Вы также можете отредактировать свой вопрос, удалив ненужную информацию, например информацию об операторе переключения. Помогите нам помочь вам., @Mark Smith

Избавьтесь от Serial.begin(9600). Вы случайно меняете скорость передачи данных по последовательному порту, не делая того же на мониторе последовательного порта, поэтому вы, вероятно, увидите тарабарщину, если что., @SoreDakeNoKoto

да, я удалил Serial.begin(9600) и все заработало, @Ravi

@TisteAndii, не могли бы вы превратить свой комментарий в ответ?, @per1234


1 ответ


Лучший ответ:

2

Избавьтесь от Serial.begin(9600). Вы случайно меняете скорость передачи данных Serial, не сделав того же в последовательном мониторе, так что вы, скорее всего, увидите бессмыслицу, если вообще увидите.

,