监视标志状态几秒钟

2024-10-05 11:17:11 发布

您现在位置:Python中文网/ 问答频道 /正文

当按下开关约5秒时,我想监控标志设置后的状态。一旦按下开关,标志被设置为flase,一旦按下,我想再检查5秒钟,如果开关被按下。如果没有,我需要再次检查开关是否按下。如果按下,再次监视它5秒钟以上。如果按下5秒钟,调用另一个函数,function1()

def switch():
     while(flag == True):
         switch=GPIO.input(1)
         if (switch==0):
            time.sleep(5)
            function1()
            Active = False
            function2()

我在上面写的方法是,我只睡5秒钟,5秒钟后再检查,这不是我想要的。有人能告诉我如何执行我上面提到的逻辑吗?你知道吗

编辑:我只想知道一旦按下开关,它是否会持续按下5秒钟。如果在这5秒钟内被按下,那么我需要再次检查开关是否再次按下,然后再次继续5秒钟,直到开关再次按下5秒钟


Tags: 函数trueinputgpioiftime标志状态
1条回答
网友
1楼 · 发布于 2024-10-05 11:17:11

好吧,我想你可以用定时器。这是假设当用户释放开关时,您也会得到一个事件。导入时间库后:

switch_flag = False
start_time = 0
end_time = 0

def switch():
    global switch_flag, start_time
    switch_flag = True
    start_time = time.time()

def unswitch():
    global switch_flag, start_time, end_time
    switch_flag = False
    end_time = time.time()
    if end_time - start_time > 5:
        print("5 seconds elapsed!")

python计时器存在一些平台/粒度方面的问题,但是如果我们讨论的是5秒,我怀疑这将是一个问题。你知道吗

相关问题 更多 >

    热门问题