RPi.GPIO添加事件检测有时会被忽略

2024-05-23 22:49:41 发布

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

我正在从事一个使用GPIO(BCM)17、27、22、5和6的项目

引脚17上的事件可以很好地检测到,但GPIO 27确实不愿意触发事件。他们似乎被发现时有点延迟

我用的是RPI4和buster lite

这是一段显示该问题的视频

https://youtu.be/bLXQkA1bzKA

有一张wiring的照片

这是我在python3视频中使用的片段

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def my_callback(channel):
        print("event!")
GPIO.add_event_detect(27, GPIO.FALLING, callback=my_callback, bouncetime=300)

while True:
    pass

有没有更好的方法来检测按钮按下?RaspberryPi平台中是否存在必须避免的GPIO?或者也许我做错了什么


Tags: 项目httpsevent视频gpiomycallback事件
2条回答

您已将反弹时间设置为300毫秒,这相当长。尝试30毫秒,那么您的程序将做出更可靠的反应

仅当反弹时间(在您的情况下为300毫秒)后信号发生变化时,才会调用该事件


另外,请尝试:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def my_callback(channel):
    print("event!")

GPIO.add_event_detect(27, GPIO.FALLING, callback=my_callback, bouncetime=300)

while True:
    time.sleep(0.01)

一些奇怪的行为是由没有内容的循环负载引起的

我已经有了一个Pi和一些奇怪的IO行为。它来自Pi4的早期批次。请记住,树莓圆周率非常便宜,即使是最轻微的噪音在PSU或只是坏运气在硅彩票可以使圆周率一个不可靠的设备。可以肯定的是,更换PSU(即使是官方PSU),如果这不能解决问题,请向您的提供商申请RMA

相关问题 更多 >