MEGAとかdueだと,メインのそれ以外の専用ポートもいくつかくっついているみたい。
Arduino can communicate to other devices by using digital ports.
Arduino UNOだと,デジタル0と1番以外を割り当てる。
0と1はもともとSoftwareSerialを使わずにシリアル通信をするときに使うものらしい。なので,最初からTXとRXという表示が付いている。今回は簡単なSoftwareSerialを使います。
In Arduino uno, we should use digital ports other than 0 and 1 when using SotwareSerial.
#include<SoftwareSerial.h>
SoftwareSerial Serial1(2,3);
// You should define before void setup()
// The name of a software serial is arbitrary.
// eg., SoftwareSerial mySerial(2,3)
void setup() {
Serial1.begin(115200);
}
void loop() {
Serial1.println("hello");
delay(500);
}
こんな感じ。
もうひとつSoftwareSerialポートを作成して,一台のArduinoで通信ごっこをして試すことが可能。
You can make another SoftwareSerial port and communicate to each other in the Arduino.
SoftwareSeria2 Serial1(4,5);// before voidsetup()
Serial2.begin(115200);// in void setup()
int SerialState = Serial2.read();// in void loop()
という感じ。
読み込んだものを確認するためには,シリアルモニタで確認したいので,そんな時には
to confirm the data, use the normal Serial and write the input data on a serial monitor.
// normal "Serial" is already defined by default.
// So you need not to define it.
Serial.begin(115200);// in void setup()
Serial.write(Serial2.read()); // in void loop()
こうすれば,シリアルモニタに,読み込んだものを出力できる。
charで読み込んだ場合は,writeではなくてprintを使う。
When you read data as char, you can use Serial.print to input them to the serial monitor.
char SerialState = Serial2.read();
Serial.println(Serial2.read());
ちなみに,
The case the types of variables are different,
Serial.println(Serial2.read());
では,違う表示になるので試してください。
2台のArduinoをつなぐ時にも,上のコードを適当に分けて書けばいい。
When you connect two Arduinos.
When you connect two Arduinos.
1台目TX-2台目RX,1台目RX-2台目TXを繋ぐのは当たり前で間違える人はいないだろうけど,1台目GRD-2台目GRDも繋がないと,電気的におかしなことになるので注意。
Note that you need to connect two GNDs.
0 件のコメント:
コメントを投稿