繁体   English   中英

Raspberry-Pi上的信号监控问题

[英]Problem with signal monitoring on Raspberry-Pi

大家好,第一次提问。 很抱歉我犯的每一个错误。

我有一个听 2 个信号的树莓派。 经过一些测试,我注意到一些噪声使我的信号在引脚悬空时会多次打开和关闭,因此我在 Python 中编写了一个小程序来查看这些信号打开多长时间:

    ##### SIGNAL DETECT LOOP #####
    while 1:
        time.sleep(0.05)

        #S1 CHECK
        if GPIO.input(12):    #S1 ON
            temp_str = ' S1 is ON '
            print(temp_str)
            if S1_FLAG != 1:
                start_S1 = time.perf_counter()
                S1_FLAG = 1
        else:
            if S1_FLAG != 0:   #S1 OFF
                end_S1 = time.perf_counter()
                temp_str = 'S1  '+str(end_S1-start_S1)+'  sec'
                print(temp_str)
                S1_FLAG = 0

S2 相同,在相同的循环中,在 GPIO.input(11) 处,不报告只是为了保持简短。

我运行这段代码,发现信号开启了大约 0.5 秒。 我写了第一个“打印”

temp_str = ' S1 is ON '  
print(temp_str)

只是在视频中查看一切进展如何,但经过一些测试后,我决定对此发表评论并进行其他一些测试,但发生了一些奇怪的事情:仅评论这 2 行代码使得 go 的时间最多为 3 秒。 为 S1 注释这些行,但不为 S2 注释它们,结果如下:

  • S1 悬空,S2 接地:S1 开启 3 秒
  • S1 接地,S2 悬空:S2 ON 0.5 秒
  • S1 和 S2 悬空:两个信号 ON 0.5 秒

这怎么可能? 当这些行被注释时,是我的程序出错了吗?

非常感谢你给我的每一个建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM