teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

結果の説明を追加

2021/05/28 13:50

投稿

kekke59
kekke59

スコア2

title CHANGED
File without changes
body CHANGED
@@ -64,6 +64,14 @@
64
64
  100
65
65
  ```
66
66
 
67
+ ここで言っているポート1やポート2というのは送信用のポートのことですが,今回のソースコードではSoftwareSerialを初期化するときに与えたピンの配列と対応しています.つまりこの場合は,ピン16とピン14で受信した場合は最上位ビットに1が入って,受信に失敗してしまうということです.
68
+ ちなみに,この16,14というピン番号が問題なのかと考え,配列内でピンの順番を入れ替えても`pins`の2番目3番目に設定したピンで受信すると失敗します.おそらく,コンストラクタ内で`setRX`が呼ばれる順番が関係しているのだと思います.
69
+ ```Arduino
70
+ uint8_t pins[] = {8, 10, 16, 14};
71
+ SoftwareSerial portOne(pins);
72
+ ```
73
+
74
+
67
75
  次に`PIN_NUM`を3に変更して実験を行いました.
68
76
  `PIN_NUM`が3の場合は,正しく通信することができました.
69
77