我正在尝试在Arduino Mega 2560中运行2个rfid阅读器(RDM 630)。我只是无法弄清楚为什么只有一个阅读器会阅读而另一个阅读器不会被阅读。 (读者都是功能性的)。
#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);
}
}
答案 0 :(得分:0)
SofwareSerial共享资源,因此需要额外考虑实施。初始化设备时,它是听音设备。如果您初始化另一个听力设备更改。你需要把:
Reader1.listen();
在您的Reader1代码之前,再次切换为您的Reader2代码。 请参阅此示例代码:http://arduino.cc/en/Tutorial/TwoPortReceive
但是,你说你有一个Mega。为什么不使用你在船上的多个连续剧?您的代码库将更小,编码更清晰。 http://arduino.cc/en/Tutorial/MultiSerialMega
答案 1 :(得分:0)
经过大约数百万次的尝试和尝试,我发现连接 4 个 RFID RC522 的正确方法是将它们放在测试板上的同一行中,除了 SS 引脚之外,代码和往常一样是来自 RFID 库的 ReadUidMultiReader
这 :