我需要帮助优化 Arduino 代码,以便使用 PN5180 阅读器加快 RFID 标签处理速度

问题描述 投票:0回答:1

我目前正在开展一个项目,使用 Arduino Nano 板和 PN5180 读取器从传送带上的盒子中读取 RFID 标签。该项目的性质要求快速高效地读取和处理 RFID 标签。但是,我面临着程序速度的问题,可能是由于使用的库造成的。我目前正在使用 PN5180-NFC 的 Arduino ESP-32 库,特别是 ATrappmann 的 GitHub 上的 tueddy 分支。虽然当 RFID 标签在传送带上移动速度较慢时,该程序表现良好,但它很难跟上所需的速度,从而导致大量读取失败。

这个挑战尤其紧迫,因为我无法控制传送带速度,因此优化代码以实现更快、更可靠的 RFID 标签处理至关重要。在使用 PN5180 阅读器之前,我使用带有不同库的 RC522 阅读器,并使其标签读取成功率达到 100%。然而,我需要 PN5180 来扩展范围。如果社区中的任何人有 Arduino 的经验,或者您可以提供提高代码效率的指导,我将非常感谢您的见解。

预先感谢您阅读这篇文章

图书馆链接

代码如下:

#include <PN5180.h>
#include <PN5180ISO14443.h>


#define PN5180_NSS 10
#define PN5180_BUSY 9
#define PN5180_RST 7


PN5180ISO14443 nfc14443(PN5180_NSS, PN5180_BUSY, PN5180_RST);


uint8_t previousUid[10];  // Initialize with zeros


void setup() {
  Serial.begin(115200);
  nfc14443.begin();
  nfc14443.reset();
  uint8_t productVersion[2];
  nfc14443.readEEprom(PRODUCT_VERSION, productVersion, sizeof(productVersion));
  uint8_t firmwareVersion[2];
  nfc14443.readEEprom(FIRMWARE_VERSION, firmwareVersion, sizeof(firmwareVersion));
  uint8_t eepromVersion[2];
  nfc14443.readEEprom(EEPROM_VERSION, eepromVersion, sizeof(eepromVersion));
  nfc14443.setupRF();
}


int count;
uint8_t uidLength;
uint8_t uid[10];


void loop() {
  nfc14443.reset();
  nfc14443.setupRF();


  if (!nfc14443.isCardPresent()) {
    return;
  }
  uidLength = nfc14443.readCardSerial(uid);
  Serial.println(uidLength);
  if (memcmp(uid, previousUid, uidLength) == 0) {
    return;
  }
  if (uidLength > 0) {
    printHEX(uid, uidLength);
    // Update the previous UID
    memcpy(previousUid, uid, uidLength);
    return;
  }
}




// Routine to dump a byte array as a continuous HEXimal number to Serial.
void printHEX(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i], HEX);
    Serial.print(":");
  }
  Serial.println("");
}
optimization arduino rfid mfrc522
1个回答
0
投票

我使用相同的库和 iso15693 标签。我无法阅读不同的标签。有时,库会返回前一个读取标签的值。这不仅仅是误读,它提取了前一个标签的确切 ID。每 20-100 次读取就会发生一次,但它确实发生了。有谁知道这怎么可能吗?

© www.soinside.com 2019 - 2024. All rights reserved.