首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个RFID读卡器和ARDUINO MEGA,只有一个读卡器可以读取

两个RFID读卡器和ARDUINO MEGA,只有一个读卡器可以读取
EN

Stack Overflow用户
提问于 2015-02-01 00:50:15
回答 2查看 3.3K关注 0票数 0

我正在尝试在Arduino Mega 2560上运行2个rfid读取器(RDM630)。我只是弄不明白为什么只有一个阅读器会阅读,而另一个阅读器不会。(阅读器都有功能)。

代码语言:javascript
复制
#include <SoftwareSerial.h>
SoftwareSerial Reader1(50, 51);
SoftwareSerial Reader2(52, 53);// RX and TX

int rfid, i;
char newtag[14];

void setup()
{
  Reader1.begin(9600);    // start serial to RFID reader
  Reader2.begin(9600);
  Serial.begin(9600);  // start serial to PC 
}

void loop()
{

  if (Reader1.available() > 0) 
  { 
    Serial.println();
    Serial.println();
    Serial.println("Reading RFID Tag...");
    delay(100);

    for (i=0; i < 13; i++)
      {
          rfid = Reader1.read();
          newtag[i]=rfid;
      }
     Reader1.flush();
     Serial.print("RFID Tag No:");
     Serial.print(newtag);

  }

  if (Reader2.available() > 0) 
  {
    Serial.println();
    Serial.println();
    Serial.println("Reading RFID Tag...");
    delay(100);

    for (i=0; i < 13; i++)
      {
          rfid = Reader2.read();
          newtag[i]=rfid;
      }
     Reader2.flush();
     Serial.print("RFID Tag No:");
     Serial.print(newtag);

  }
}
EN

回答 2

Stack Overflow用户

发布于 2015-02-01 22:50:58

SofwareSerial有共享的资源,所以在实现上需要额外考虑一下。当你初始化一个设备时,它就是监听设备。如果你初始化了另一个,监听设备就会改变。您需要放入:

代码语言:javascript
复制
Reader1.listen();

在您的Reader1代码之前,再次切换到您的Reader2代码。请看下面的示例代码:http://arduino.cc/en/Tutorial/TwoPortReceive

然而,你说你有一个Mega。为什么不使用机载的多系列产品呢?你的代码库会更小,代码也会更整洁。http://arduino.cc/en/Tutorial/MultiSerialMega

票数 1
EN

Stack Overflow用户

发布于 2021-08-04 17:53:47

经过大约百万次的尝试和尝试,我发现连接4个RFID RC522的正确方法是将它们放在测试板上的同一条线上,除了SS引脚,代码通常是来自RFID库的ReadUidMultiReader,如下所示:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28254034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档