我对Python和编程还不熟悉。
我正在使用Arduino和python为Spotify制作远程控制。
只要按下Arduino上的按钮,就会通过串行发送一个字符。有一个python脚本监听这个字符,并根据这个字符执行一个命令。我遇到的问题是spotify.playpause()
每次按下其相应的按钮时都会工作,但所有其他命令都需要多次按下按钮。我确信这不是Arduino的问题,因为我已经通过多个串行监视器确认了字符的正确发送,所以我相信这是Python循环的问题。在
编辑:仅仅添加更多信息,似乎python端的serial.read()
或{Serial.print
或{
循环没有完全执行,有什么问题吗。在
代码如下:
import serial
from pytify import Spotify
spotify = Spotify()
connected = False
ser = serial.Serial("COM3", 57600)
while not connected:
serin = ser.read()
connected = True
while True:
if ser.read() == '0':
spotify.playpause()
elif ser.read() == '1':
spotify.volumeUp()
elif ser.read() == '2':
spotify.volumeDown()
elif ser.read() == '3':
spotify.previous()
elif ser.read() == '4':
spotify.next()
else :
pass
你的问题是你一直打电话ser.read公司对于每个if/elif情况,因此每次比较失败时都将丢弃该值。你需要打电话ser.read公司只进行一次,然后使用本地变量比较结果,如下所示:
相关问题 更多 >
编程相关推荐