首页 > 解决方案 > Arduino单LED TypeError

问题描述

我有 ArduinoUNO,我使用 Python3。我想根据命令打开和关闭单个 LED。但我得到错误。

ON TypeError:不支持unicode字符串,请编码为字节:'H' OFF TypeError:不支持unicode字符串,请编码为字节:'L'

我做错了什么?这是我的代码:

import serial
import time


arduino = serial.Serial("COM3", 9600)

def onOffFunction():
    command = input("Type in something (on/off/bye): ");
    if command == "on":
         print ("The LED is ON")
         time.sleep(1)
         arduino.write('H')
         onOffFunction()
    elif command == "off":
        print ("The LED is OFF")
        time.sleep(1)
        arduino.write('L')
        onOffFunction()
    elif command == "bye":
        print ("Bye Bye!")
        time.sleep(1)
        arduino.close()
    else:
        print ("Sorry.. Try typing something else.")
        onOffFunction()

time.sleep(2)

onOffFunction()

标签: pythontypeerror

解决方案


可以在这里找到解释:

向 Arduino 写入数据也很容易(以下适用于 Python 2.x):

导入序列号 # 如果您还没有这样做

ser = serial.Serial('/dev/tty.usbserial', 9600)

ser.write('5')

在 Python 3.x 中,字符串默认为 Unicode。向 Arduino 发送数据时,必须将它们转换为字节。这可以通过在字符串前面加上 b 来完成:

ser.write(b'5') # 前缀 b 对于 Python 3.x 是必需的,对于 Python 2.x 是可选的


推荐阅读