我试图用python3.4中的代码从计算机启动电机,使用pySerial与Arduino Uno通信。我已经将发送的值打包到十六进制,因此每次只有一个字节,但是在Arduino端遇到了一个问题,因为我在Python端发送的是正确的数字。在
PYTHON代码:
import serial
import struct
ser = serial.Serial(
port ='COM4',
baudrate = 9600,
parity = serial.PARITY_ODD,
stopbits = serial.STOPBITS_TWO,
bytesize = serial.EIGHTBITS
)
#ser.open() #opens port
ser.isOpen() #returns true?
motorState = 0
wristBend = 'Left'
while True:
#need to create options to send to arduino
if wristBend == 'Left':
motorState = 2
elif wristBend == 'Right':
motorState = 3
else:
motorState = 1
motorChar = struct.pack('<B', motorState) #returns the value as a character interger
#motorChar = str(hex(motorState))
print(motorChar)
ser.write(motorChar)
print(ser.read())
break
ARDUINO代码:
^{pr2}$不仅没有任何东西与我的电路通信,而且我的python代码的输出,我打印出发送到Arduino的内容和从Arduino发送的内容是:
b'\x02'
b'S'
如果我将switch case代码更改为83(ASCII代码S),或者将变量类型更改为byte、int、uint8,那么我得到的输出完全相同。我做错什么了?抱歉,如果这有点明显,我对python和arduino还比较陌生。提前感谢您的帮助!在
这里有一个简单的例子,通常从简单开始,然后根据需要增加功能。在
试验_序列号.py在
试验_序列号.ino在
^{pr2}$相关问题 更多 >
编程相关推荐