プロジェクトでは、3 つの ATtiny 間に通信ネットワークを設定しようとします。最初の ATtiny は他の 2 つの ATtiny からメッセージを受信する必要があります。これらの他の 2 つの tiny は、最初の tiny の 2 つの異なるピンに接続されています。最初の tiny は、他の tiny から 2 つの文字列をそれぞれ 1 つずつ受け取り、それを Arduino に送信する必要があります。私たちが使用したコミュニケーションのためにSoftwareSerial
。一度に 1 つの特定のピンからのみ入力を読み取る方法を見つけることができなかったため、1 つの小さなピンから入力を送受信できましたが、両方からではありませんでした。使用したコードは次のとおりです。
#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();
。たぶん-function は tinys ではlisten
機能しSoftwareSerial
ませんが、その場合、特定の入力ピンをリッスンする別の方法はありますか? または、何をすべきかアドバイスはありますか?