在一个项目中,我们尝试在三个ATtinys之间建立一个通信网络,第一个必须接收来自其他两个的消息。那两个小的连接器连接到第一个小的两个不同的引脚。然后,第一个小小的必须接收来自其他小部分的两个字符串,每个字符串各一个,并将其发送到Arduino。对于我们使用SoftwareSerial
的通信。我们设法从一个小的接收和发送输入,但不是从它们两个接收,因为我们找不到一次只从一个特定引脚读取输入的方法。
这是我们使用的代码:
#include <SoftwareSerial.h>
const int rx=4;
const int rx2=1;
const int tx=3;
const int tx2=3;
SoftwareSerial mySerial(rx,tx);
SoftwareSerial mySerial2(rx2,tx2);
void setup()
{
pinMode(rx,INPUT);
pinMode(rx2,INPUT);
pinMode(tx,OUTPUT);
mySerial.begin(9600);
mySerial2.begin(9600);
}
void loop()
{
mySerial.listen();
if (mySerial.isListening()) {
mySerial.println("Port One is listening!");
mySerial.println(mySerial.read());
}
else{
mySerial.println("Port One is not listening!");
}
mySerial2.listen();
if (mySerial2.isListening()) {
mySerial2.println("Port Two is listening!");
mySerial2.println(mySerial2.read());
}
else{
mySerial2.println("Port Two is not listening!");
}
delay(500);
}
上面的代码在mySerial2.listen();
之后没有部分工作。也许listen
- SoftwareSerial
的函数不适用于tinys,但如果是这样的话,还有另一种方法可以监听特定的输入引脚吗?
或者你有什么建议吗?