Библиотека I2C для MIFARE RC522

Я смотрел эту ссылку на интерфейс RFID I2C. Я добавил библиотеку в arduino, но в main.cpp, я вижу ошибку:

  

В функции 'void setup ()':

     

sketch_mar27a: 16: ошибка: нет соответствующей функции для вызова «TwoWire :: begin (int, int)»

     

Wire.begin (SDA_PIN, SCL_PIN); //Инициализировать I2C

Я просмотрел файл Wire.cpp и обнаружил, что нет такой функции-члена, перегруженной двумя параметрами.

Как мне исправить проблему? Даже если я исправлю эту проблему, я не уверен, работает ли этот код кода.

Где я могу найти рабочий код с интерфейсом I2C? У меня проблема с ресурсами, и SPI PORT не может быть использован.

Код:

#include <Wire.h>

#include "MFRC522_I2C.h"

#define SDA_PIN 5
#define SCL_PIN 6
#define RST_PIN 3

MFRC522 mfrc522(0x28, RST_PIN);  // Create MFRC522 instance.

void ShowReaderDetails();

void setup() {
  Serial.begin(9600); // Initialize serial communications with the PC
  Wire.begin(SDA_PIN, SCL_PIN); // Initialize I2C
  mfrc522.PCD_Init();   // Init MFRC522
  ShowReaderDetails();  // Show details of PCD - MFRC522 Card Reader details
  Serial.println(F("Scan PICC to see UID, 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));
}

void ShowReaderDetails() {
  // Get the MFRC522 software version
  byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
  Serial.print(F("MFRC522 Software Version: 0x"));
  Serial.print(v, HEX);
  if (v == 0x91)
    Serial.print(F(" = v1.0"));
  else if (v == 0x92)
    Serial.print(F(" = v2.0"));
  else
    Serial.print(F(" (unknown)"));
  Serial.println("");
  // When 0x00 or 0xFF is returned, communication probably failed
  if ((v == 0x00) || (v == 0xFF)) {
    Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));
  }
}
1 голос | спросил Rajesh 27 MaramTue, 27 Mar 2018 03:42:51 +03002018-03-27T03:42:51+03:0003 2018, 03:42:51

1 ответ


1

SPI - это многоуровневая шина. Если у вас нет свободных контактов для использования в CS, или у вас есть подчиненные устройства, которые не играют хорошо, вы также можете подключить свой RFID-модуль к шине SPI. Кроме того, ваш эскиз, скорее всего, скомпилируется, если вы исправите только строку с нарушением только Wire.begin(). Ваша библиотека использует стандартную библиотеку Wire, но предполагает, что целью является ESP8266, версия которого имеет расширенный метод begin().

Но это может быть бесполезно, поскольку у вас есть MFRC522 (при условии, что это дешевый синий модуль) жестко используется только для интерфейса SPI. Если вы не готовы изменить PCB (вырезать трассы и т. Д.), Как это сделали другие.

ответил TisteAndii 27 MaramTue, 27 Mar 2018 06:06:57 +03002018-03-27T06:06:57+03:0006 2018, 06:06:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132