我正在尝试在Arduino Mega 2560上运行2个rfid读取器(RDM630)。我只是弄不明白为什么只有一个阅读器会阅读,而另一个阅读器不会。(阅读器都有功能)。
#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);
}
}发布于 2015-02-01 22:50:58
SofwareSerial有共享的资源,所以在实现上需要额外考虑一下。当你初始化一个设备时,它就是监听设备。如果你初始化了另一个,监听设备就会改变。您需要放入:
Reader1.listen();在您的Reader1代码之前,再次切换到您的Reader2代码。请看下面的示例代码:http://arduino.cc/en/Tutorial/TwoPortReceive
然而,你说你有一个Mega。为什么不使用机载的多系列产品呢?你的代码库会更小,代码也会更整洁。http://arduino.cc/en/Tutorial/MultiSerialMega
发布于 2021-08-04 17:53:47
经过大约百万次的尝试和尝试,我发现连接4个RFID RC522的正确方法是将它们放在测试板上的同一条线上,除了SS引脚,代码通常是来自RFID库的ReadUidMultiReader,如下所示:

https://stackoverflow.com/questions/28254034
复制相似问题