我是Python的新手,我正尝试开发一种功能,该功能或多或少像汽车中的停车传感器一样工作。
也就是说,该代码接收到一些传感器输入数据,并实时发出蜂鸣声,其中两次蜂鸣之间的等待时间与信号的大小成反比(即,当蜂鸣声闭合时,蜂鸣声会同时闭合)反之亦然)。
我试图创建一个while循环,其中包括winsound.beep()和一个暂停。暂停持续时间将使用传感器输入来计算。但是,即使以几行简单的代码运行,while循环也似乎是异步的,并且暂停之间的间隔也不均匀。
我试图将代码放在单独的线程中,但这不能解决问题。
我将在此处包含代码以仅执行重复的蜂鸣声,而不从那里进行任何输入来排除故障。
from time import sleep
import winsound
while True:
winsound.Beep(1500,100)
sleep(0.05)
我希望输出是间隔0.05s的一致蜂鸣声,但是实际输出是异步蜂鸣,并且暂停会随时间变化。
答案 0 :(得分:0)
尝试
from time import sleep
import winsound
while True:
winsound.Beep("SystemExit", winsound.SND_ALIAS)
sleep(0.05)
编辑: 试试这个
from time import sleep
import winsound
while True:
frequency = 10 # change it based on sensor input
duration = 1000 # keep this constant
winsound.Beep(frequency,duration)
sleep(duration) # i'm assuming beep is not blocking so this delay keep the program waiting until beep duration is completed
提示音设置参数频率和持续时间。 因此,您可以更改频率以匹配信号的幅度,而无需更改睡眠时间。