RFID модуль RC522 ничего не читает

Тема в разделе "Arduino & Shields", создана пользователем Ravgus, 22 сен 2017.

  1. Ravgus

    Ravgus Нуб

    Здравствуйте! недавно купил RC522 RFID Модуль с карточкой доступа для Arduino, на сайте https://arduino-ua.com/prod649-RC52...50_Fudan_Cards_Key_Chains_for_Arduino_Provide. Прочитал пару туториалов, подключил к Arduino Uno 3, как указанно тут https://lesson.iarduino.ru/page/urok-6-arduino-schityvaem-metki-rfid-modul-rc522/ :
    RST - 9 пин
    SDA(SS) 10 пин
    MOSI - 11 пин
    MISO
    - 12 пин
    SCK
    - 13 пин
    3.3V
    - 3.3V
    GND -
    GND

    Скачал и подключил библиотеку <MFRC522.h>, запустил скетч-пример вывода инфы о RFID-метке. Скетч:
    Код (C++):
    #include <SPI.h>
    #include <MFRC522.h>

    constexpr uint8_t RST_PIN = 9;          // Configurable, see typical pin layout above
    constexpr uint8_t SS_PIN = 10;         // Configurable, see typical pin layout above

    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
        mfrc522.PCD_DumpVersionToSerial();    // Show details of PCD - MFRC522 Card Reader details
        Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
    }

    void loop() {
        // Look for new cards
        if ( ! mfrc522.PICC_IsNewCardPresent()) {
            return;
        }

        // Select one of the cards
        if ( ! mfrc522.PICC_ReadCardSerial()) {
            return;
        }

        // Dump debug info about the card; PICC_HaltA() is automatically called
        mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
    }
    В итоге мне выдает такое сообщение (фотка в вложениях).

    Но при поднесении брелка или карточки, что шли в комплекте ничего не происходит. Я было грешным делом подумал, что какие то контакты отходят, все припаял, но ничего не изменилось. Пробовал и RFID брелки от домофона домашнего - тоже их не видит. Я уже кучу статей перечитал, пару раз проверил подключение самой схемы. Честно я не знаю уже в чем может быть проблема. Может у кого будут полезные мысли на этот счет. Заранее благодарю.
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      19 КБ
      Просмотров:
      2.221
  2. ORLENOK

    ORLENOK Гик

    Чтобы узнать, что карта явно не определяется можно сделать так:
    Код (C++):
    void loop() {
        // Look for new cards
        if ( ! mfrc522.PICC_IsNewCardPresent()) {
            return;
        }
       Serial.println("New card");
        // Select one of the cards
        if ( ! mfrc522.PICC_ReadCardSerial()) {
            return;
        }

        // Dump debug info about the card; PICC_HaltA() is automatically called
        mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
    }
    Если же надпись появляется значит проблема при чтении информации.
     
  3. Ravgus

    Ravgus Нуб

    хмм, странно, надпись "New card" не выводится, в чем тогда проблема?
     
  4. Ravgus

    Ravgus Нуб

    выходит оно карты что ли не находит?
     
  5. Ravgus

    Ravgus Нуб

    Может частота метки отличается от частоты модуля, и он ее не видит? хотя это очень странно, поскольку брелок шел в комплекте с модулем. В чем еще может быть проблема?
     
  6. Airbus

    Airbus Радиохулиган Модератор

    А так?
    Код (C++):
    /*
    * MOSI: Pin 11 / ICSP-4
    * MISO: Pin 12 / ICSP-1
    * SCK: Pin 13 / ISCP-3
    * SS: Pin 10
    * RST: Pin 9
    */

    #include <SPI.h>
    #include <RFID.h>

    #define SS_PIN 10
    #define RST_PIN 9

    RFID rfid(SS_PIN, RST_PIN);

    int serNum0;
    int serNum1;
    int serNum2;
    int serNum3;
    int serNum4;

    void setup()
    {
      Serial.begin(9600);
      SPI.begin();
      rfid.init();
    }

    void loop()
    {
        // Если обнаружена карта
        if (rfid.isCard()) {
            // Считываем адрес
            if (rfid.readCardSerial()) {
              // Выводим его в порт в десятичном представлении
              Serial.println("Card number:");
              Serial.print(rfid.serNum[0],DEC);
              Serial.print(", ");
            Serial.print(rfid.serNum[1],DEC);
              Serial.print(", ");
            Serial.print(rfid.serNum[2],DEC);
              Serial.print(", ");
            Serial.print(rfid.serNum[3],DEC);
              Serial.print(", ");
            Serial.print(rfid.serNum[4],DEC);
              Serial.println(" ");
              delay(3000);
            }      
        }
        rfid.halt();
    }
    Подозреваю что библиотека кривая
     
  7. Ravgus

    Ravgus Нуб

    а что за библиотека RFID? Везде только <MFRC522.h> выдает в гугле
     
  8. Airbus

    Airbus Радиохулиган Модератор

    Как это нет?Есть я же нашел.У меня тоже не работало на каком то форуме нашел.Могу скинуть на мейл или найду ссылку.
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Как это нет?Есть я же нашел.У меня тоже не работало на каком то форуме нашел.Могу скинуть на мейл или найду ссылку.
     
  10. Ravgus

    Ravgus Нуб

    буду очень благодарен
     
  11. Airbus

    Airbus Радиохулиган Модератор

    Отправил.Можно взять здесь.Есть и пример работы.Библиотека MFRC522.h почему то не работает в среде 1.5.5 и старше-только в старых.
     
  12. Ravgus

    Ravgus Нуб

    спасибо за ссылку, но все все равно печально, поставил эту библиотеку, запустил скетч и ничего, оно все равно не читает метки(( хз почему
     
  13. Airbus

    Airbus Радиохулиган Модератор

    Среда какая?Версия?
     
    Последнее редактирование: 24 сен 2017
  14. Ravgus

    Ravgus Нуб

    arduino ide (genuino) 1.8.2
     
  15. Airbus

    Airbus Радиохулиган Модератор

    Тут дело вот в чём : arduino ide 1.8.2 глючит. Это как раз тот случай когда самое новое не самое лучшее. поставил её на втором компе-и ни один проект не скомпилировался. В 1.5.5 всё прекрасно работает. Что Вам посоветовать даже и не знаю. Установить старую версию? Я б установил но это Вам решать.
     
  16. Ravgus

    Ravgus Нуб

    поставил 1.5.5, результат тот же - не читает( прямо смешно уже
     
  17. Airbus

    Airbus Радиохулиган Модератор

    А скетч и библиотека та что по моей ссылке тоже не работают?
     
  18. Ravgus

    Ravgus Нуб

    да, на экран монитора ничего не высвечивается(
     
  19. Airbus

    Airbus Радиохулиган Модератор

    Копнув глубже-обнаружил что современные IDE умеющие программировать esp (с 1.6.4 и выше) не приемлют старые библиотеки категорически. В частности начиная с 1.6.х уже нельзя подключить LCD компилятор грязно ругается в примерах также нет LCD только если по I2C. Такая же байда с Rfid и другими устройствами. Конечно можно писать в CVAVR но я уже привык к этому "няшному Си" да и куча скетчей от 1.5.5. Как поступить? Хотя бы с LCD?
     
  20. Ravgus

    Ravgus Нуб

    в общем все решилось заменой новой платы, видимо та таки была бракованная