m0_58397790 2021-11-27 20:56 采纳率: 69.2%
浏览 14

python程序里面存在一个问题

我编辑了一个脚本如下:


                                       if ret ==0:
                                            count+=1
                                       if color>160:
                                            print(2)
                                            a=count
                                      b=count-a
                                      if b ==3:
                                               启动gpio

光电传感器得到一次信号,ret就会置一次零,我相当于是利用count对光电传感器感应的次数进行计数,但是我现在是识别物体的颜色,通过color这个变量判断物体是什么颜色,光电每给一次信号,就会有一个color值,现在我想要达到的目的是,当我当前的color值大于160时,我要再等光电传感器得到3次信号时我再启动gpio,我在满足color大于160的条件时,记下当下的count值是多少,用b变量表示当前的count值减去之前满足if条件的count值,也就是相当于当满足if条件后,我想再得到三次光电信号时再启动gpio,但是目前的问题是,如果我当第一次ret等于零时就满足了color大于160的条件,我紧接着当第二次ret等于零时又满足了条件,我的变量a不是一个固定的数了,这样就不准确了,请问一下大家有什么解决办法。

  • 写回答

1条回答 默认 最新

  • ~白+黑 新星创作者: python技术领域 2021-11-27 22:24
    关注
    
    '''
    不具体了解你的逻辑,全当抛砖引玉吧
    每次光电信号ret置零,
    并同时有一个color
    当color大于160,需要再接受3次信号,这三次信号不管color值大不大于160,都改变gpio
    
    '''
    count=0
    m=0
    if color >160:
        m=1
    if ret==0 and m==1:
        count+=1
        if count==3:
            # 启动gpio命令
            m=0
    
    
    评论

报告相同问题?

问题事件

  • 修改了问题 11月27日
  • 创建了问题 11月27日