Pyserial“ser.write()”函数没有将正确的值传递给 Arduino

问题描述 投票:0回答:0

我正在尝试将一个整数从我的 Python 代码发送到 Arduino。当我尝试使用 ser.write() 发送“val”的值并在 Arduino 上接收它们时,值是不同的。

这是我的 python 代码:

if arr == [0,0,0] :
    val = 0
elif arr == [0,0,1] :
    val = 1
elif arr == [0,1,0] :
    val = 2
elif arr == [1,0,0] :
    val = 3
elif arr == [0,1,1] :
    val = 4
elif arr == [1,0,1] :
    val = 5
elif arr == [1,1,0] :
    val = 6
elif arr == [1,1,1] :
    val = 7

strval = str(val)
strencode = strval.encode()
ser.write(strencode)

现在,当我发送变量的值时,Arduino 串行监视器显示它接收到的值范围为 40-54,这相差很远。

这是我的 Arduino 代码:

if (Serial.available() > 0) {

  data = Serial.read();
  if (data < 8){
      decode(data);
  }
Serial.println(data);

如何从 Python 向 Arduino 发送一个整数?

python arduino raspberry-pi pyserial arduino-c++
© www.soinside.com 2019 - 2024. All rights reserved.