在一个项目中,我们尝试在三个 ATtiny 之间建立一个通信网络,其中第一个必须接收来自其他两个的消息。其他两个微型连接到第一个微型的两个不同引脚。然后,第一个 tiny 必须从其他 tiny 接收两个字符串,每个字符串一个,并将其发送到 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
-functionSoftwareSerial
对 tinys 不起作用,但如果是这种情况,是否有另一种方法来监听特定的输入引脚?或者你有什么建议吗?