关于引脚连接线引起电压振荡问题

沙雕男 25cm2020-03-12283 次点击
目前学习树莓派按键测试,看一个gpio点的电平,我程序上把它设置为输入点并设置上拉电阻(因为没外接上拉电阻),然后用杜邦线一段接该点,杜邦线另一端滞空,然后我手碰这条杜邦线没带皮部分,该点的电平会振荡,用手拧下带皮部分也会振荡,换了好几条杜邦线都一样,触点换了好几个也一样,请问大佬们这是怎么回事,是不是杜邦线不适合接触点,那有什么好用的连接线推荐给我这个菜鸟么,谢谢了
收藏 ♥ 感谢
Spoony 小组长 2020-03-13 
得看什么样的震荡,在多大范围内。
小范围的话应该是正常的。
沙雕男 25cm 2020-03-13 
@Spoony 会从高电平调到低电平再跳回高电平,这样的震荡不正常吧?
RaspiSQH 63.5m 2020-03-13  ♥ 1
请你的程序贴出来看一下是否有软件错误。

注意,如果你使用的是pi4和rpi.gpio库,那么这是正常现象,因为pi4的gpio内部上拉/下拉曾经有一个错误。现在已修正:https://sourceforge.net/p/raspberry-gpio-python/tickets/168/
如果确实如此,请更新你的rpi.gpio库:
更新(py3): pip3 install --upgrade --pre RPi.GPIO
更新(py2): pip install --upgrade --pre RPi.GPIO
沙雕男 25cm 2020-03-13 
@RaspiSQH

我的树莓派是3B
这个程序是当该触点状态从高电平变成低电平后发送一个url请求
Spoony 小组长 2020-03-13 
@沙雕男 建议参考这篇教程中的「开关防抖」一节
https://shumeipai.nxez.com/2016/09/28/rpi-gpio-module-inputs.html

# 在通道上添加上升临界值检测,忽略由于开关抖动引起的小于 200ms 的边缘操作
GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback, bouncetime=200)

或者

GPIO.add_event_callback(channel, my_callback, bouncetime=200)
remove_event_detect()

由于某种原因,您不希望您的程序检测边缘事件,您可以将它停止:

GPIO.remove_event_detect(channel)
沙雕男 25cm 2020-03-13 
@Spoony 好的,我试下
沙雕男 25cm 2020-03-14  ♥ 2
谢谢各位了,我暂时解决了,可能是我杜邦线质量的问题,解决方式是程序采样一定数量的电平来确认正确状态,只要这几个点状态一致就不是震荡电平,测试发现震荡电平持续很短,在我设置的采样次数中电平肯定会发生变化,只有当电平在采样结束后全部一致,这个就是稳定的电平状态

登录注册 后可回复。