質問編集履歴

1

追記を行いました。

2022/10/07 11:27

投稿

sin123456789
sin123456789

スコア5

test CHANGED
File without changes
test CHANGED
@@ -9,16 +9,21 @@
9
9
  ```python
10
10
  import serial
11
11
  import time
12
+ with serial.Serial('COM3', 9600, timeout=1) as ser: # シリアルポートとボーレートを設定
13
+ time.sleep(1)
14
+   p=str('a')
15
+ flag = bytes(p, 'utf-8')
16
+ ser.write(flag) # 入力した文字を送信
17
+ time.sleep(1)
12
18
 
19
+ p=str('b')
20
+ print(p)
13
- ser = serial.Serial("COM3",9600)
21
+ flag = bytes(p, 'utf-8')
22
+ ser.write(flag) # 入力した文字を送信
14
- time.sleep(1)
23
+ time.sleep(1)
15
- flag = bytes('a')
16
- ser.write(flag)
17
- time.sleep(1)
18
- flag = bytes('b')
19
- ser.write(flag)
20
- ser.close()
24
+ ser.close()
21
- ```
25
+
26
+
22
27
  ```arduino
23
28
  void setup() {
24
29
  Serial.begin(9600);
@@ -41,6 +46,30 @@
41
46
  シリアル通信自体はできています
42
47
  arduinoIDEのシリアルモニタからaやbを送信するとLEDが光ったり消えたりするのでarduino側のプログラムは問題がないと思います。
43
48
 
49
+ ### 追記
50
+ input()を使うとうまくいったのですがなぜでしょうか・・・。input()は使わず何とかする方法はないでしょうか・・・。
51
+ ```python
52
+ import serial
53
+ import time
54
+ with serial.Serial('COM3', 9600, timeout=1) as ser: # シリアルポートとボーレートを設定
55
+ time.sleep(1)
56
+ p = input()
57
+ print(p)
58
+ print(type(p))
59
+ flag = bytes(p, 'utf-8')
60
+ ser.write(flag) # 入力した文字を送信
61
+ time.sleep(1)
62
+
63
+ p=str('b')
64
+ print(p)
65
+ flag = bytes(p, 'utf-8')
66
+ ser.write(flag) # 入力した文字を送信
67
+ time.sleep(1)
68
+ ser.close()
69
+ ```
70
+ aの送信をinput()でおこなうと、なぜかbの送信もうまくいきます・・・。
71
+ arduino unoをつかっています。
72
+
44
73
  ### 補足情報(FW/ツールのバージョンなど)
45
74
 
46
75
  ここにより詳細な情報を記載してください。