前提・実現したいこと
Python→Arduinoでシリアル通信を行っています。
■Arduino側
Swich分を使い、1 - 3の何れかが入力された際にそれぞれの処理を行います。
■Python側
1 - 3の数値を送る処理を行っています。
↑この時、数値は変数に代入しています。
下記のコードでは文字をser.write(b"1")でバイナリ変換しています
(この状態だと通信できます)
やりたいことは変数内(例としてa = 1)の数値を変換したいです。
(そもそもArduino側はバイナリ形式でしか文字を認識できないのでしょうか)
発生している問題・エラーメッセージ
該当のソースコード
Arduino
1int ledPin = 13; 2 3void setup() { 4 Serial.begin(9600); 5 pinMode(ledPin, OUTPUT); 6} 7 8void loop() { 9 byte var = Serial.read(); 10 var = var - 0x30; 11 12 switch (var) { 13 case 1: 14 Serial.println('1'); 15 digitalWrite(ledPin, HIGH); 16 delay(1000); 17 digitalWrite(ledPin, LOW); 18 delay(1000); 19 break; 20 case 2: 21 //hoge(var); 22 Serial.println('2'); 23 break; 24 case 3: 25 //hoge(var); 26 Serial.println('3'); 27 break; 28 } 29} 30 31
Python
1 2import serial 3import time 4 5#シリアル通信 6 7ser = serial.Serial('COM3',9600) 8time.sleep(2) 9ser.write(b"1") 10time.sleep(2) 11ser.close() 12
試したこと
Pythonの数字はint型らしいのでint→バイナリに変換する
下記コードを試してみました上手くいきませんでした
kekka = int.from_bytes(b'\x00\x10', byteorder = "big")
print(kekka)
補足情報(FW/ツールのバージョンなど)
Python 3.8.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/06 04:31
2020/05/06 04:42 編集
2020/05/06 04:47