回答編集履歴

4

修正

2022/10/25 07:15

投稿

ozwk
ozwk

スコア13551

test CHANGED
@@ -20,14 +20,14 @@
20
20
  //Serial1.write (1回目)
21
21
  Serial1.begin(9600);
22
22
  Serial1.write(txData, 6);
23
- Serial.flush();
23
+ Serial1.flush();
24
24
  delay(1000);
25
25
 
26
26
  //send serial break
27
27
  // わざと低速で0を送る
28
28
  Serial1.begin(300);
29
- Serial.write(0);
29
+ Serial1.write(0);
30
- Serial.flush();
30
+ Serial1.flush();
31
31
 
32
32
  //Serial1.write (2回目以降)
33
33
  Serial1.begin(9600);

3

コード修正、補記

2022/10/25 07:15

投稿

ozwk
ozwk

スコア13551

test CHANGED
@@ -20,11 +20,14 @@
20
20
  //Serial1.write (1回目)
21
21
  Serial1.begin(9600);
22
22
  Serial1.write(txData, 6);
23
+ Serial.flush();
23
24
  delay(1000);
24
25
 
25
26
  //send serial break
27
+ // わざと低速で0を送る
26
28
  Serial1.begin(300);
27
29
  Serial.write(0);
30
+ Serial.flush();
28
31
 
29
32
  //Serial1.write (2回目以降)
30
33
  Serial1.begin(9600);

2

コード追記

2022/10/25 07:10

投稿

ozwk
ozwk

スコア13551

test CHANGED
@@ -7,3 +7,36 @@
7
7
 
8
8
  AND回路でも実現可能です。
9
9
  TXとデジタル出力のANDを取ればデジタル出力がHの間はTXが出力に表れ、デジタル出力がLの間は出力がLになります
10
+
11
+ ---
12
+
13
+ どうも"Serial Break"を送りたいという感じですので
14
+ これでできたりしません?
15
+
16
+ ```Arduino
17
+ void setup() {
18
+ const byte txData[6] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
19
+
20
+ //Serial1.write (1回目)
21
+ Serial1.begin(9600);
22
+ Serial1.write(txData, 6);
23
+ delay(1000);
24
+
25
+ //send serial break
26
+ Serial1.begin(300);
27
+ Serial.write(0);
28
+
29
+ //Serial1.write (2回目以降)
30
+ Serial1.begin(9600);
31
+ for(byte i = 0; i < 5; i++)
32
+ {
33
+ Serial1.write(txData, 3);
34
+ delay(1000);
35
+ }
36
+ }
37
+
38
+ void loop() {
39
+
40
+ }
41
+
42
+ ```

1

追記

2022/10/25 06:14

投稿

ozwk
ozwk

スコア13551

test CHANGED
@@ -4,3 +4,6 @@
4
4
  間にマルチプレクサなどを挟んで接続先をTxとGNDとで切り替えるという方法を提案します。
5
5
 
6
6
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-10-25/965afafd-807f-4409-9405-897d2f166744.png)
7
+
8
+ AND回路でも実現可能です。
9
+ TXとデジタル出力のANDを取ればデジタル出力がHの間はTXが出力に表れ、デジタル出力がLの間は出力がLになります