Python if语句条件中的while循环

Python if语句条件中的while循环,python,micropython,Python,Micropython,我真的很难完成代码的最后一部分 以下是一些背景资料。这段代码通过超声波传感器寻找它前面的物体,如果有,它会通过http_get将其记录到互联网数据库中,如果没有物体,它只会每隔2秒继续寻找 我把所有的东西都打蜡了,除非有人把东西留在那里很长时间。看看代码,它会有意义的。(这只是代码的一部分) 为True时: #设置针脚并读取读数。 #在一个while循环中,这样它就可以不断地执行它。 trig=机器引脚(5,机器引脚输出) trig.low() 时间。睡眠时间(2) 触发器高() 时间。睡眠时间

我真的很难完成代码的最后一部分

以下是一些背景资料。这段代码通过超声波传感器寻找它前面的物体,如果有,它会通过http_get将其记录到互联网数据库中,如果没有物体,它只会每隔2秒继续寻找

我把所有的东西都打蜡了,除非有人把东西留在那里很长时间。看看代码,它会有意义的。(这只是代码的一部分)

为True时:
#设置针脚并读取读数。
#在一个while循环中,这样它就可以不断地执行它。
trig=机器引脚(5,机器引脚输出)
trig.low()
时间。睡眠时间(2)
触发器高()
时间。睡眠时间(10)
trig.low()
echo=机器插针(4,机器插针英寸)
而echo.value()==0:
通过
t1=时间。滴答声_us()
而echo.value()==1:
通过
t2=时间。滴答声_us()
cm=(t2-t1)/58.0
打印(cm)#cm是我用来确定对象是否存在的输出。
如果cm>=15:#这意味着那里什么都没有。
时间。睡眠(1)

elif cm使用标志检查距离是否超过15

flag_reset = 0

while True:

    (your_code)

    if cm >15:

        time.sleep(1)
        flag_reset = 0

    elif cm <=15 and flag_reset == 0:

        do_something()
        flag_reset = 1
flag_reset=0
尽管如此:
(你的密码)
如果cm>15:
时间。睡眠(1)
标志_重置=0

艾利夫厘米的作品-非常感谢。但我不知道为什么-想解释一下吗?试着思考一下,当对象到达时,每次执行的是什么,保持几秒钟,然后又离开。@LukeVenter。。代码只需注意对象需要至少一次超出范围(cm>15),第二个“如果”条件才能工作。
def checking():

    if cm >= 15:
        time.sleep(1) 
    elif cm <= 15:
        http_get('URL')
        time.sleep(5)

        while: cm <= 15:
            keep sensing but not logging.
            then, if the distance changes to back to more than 15cm,
            return back to the top. (because the object would be gone).
flag_reset = 0

while True:

    (your_code)

    if cm >15:

        time.sleep(1)
        flag_reset = 0

    elif cm <=15 and flag_reset == 0:

        do_something()
        flag_reset = 1