質問編集履歴
1
追記を行いました。
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
|
-
|
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
|
ここにより詳細な情報を記載してください。
|