不懂电路,谁能讲一下树莓派 GPIO 输入模式。

2018-11-02 11:01:17 +08:00
 owenliang

我是电路小白,想接个按钮上去检测一下。

看到什么上拉下拉电阻,实在是不知道干啥的,谁能通俗的透彻的说一下理解。

下面是官方的说明,貌似是说可以编程控制 GPIO 默认输入高电平还是低电平的意思,设置默认值的感觉?

If you do not have the input pin connected to anything, it will 'float'. In other words, the value that is read in is undefined because it is not connected to anything until you press a button or switch. It will probably change value a lot as a result of receiving mains interference.

To get round this, we use a pull up or a pull down resistor. In this way, the default value of the input can be set. It is possible to have pull up/down resistors in hardware and using software. In hardware, a 10K resistor between the input channel and 3.3V (pull-up) or 0V (pull-down) is commonly used. The RPi.GPIO module allows you to configure the Broadcom SOC to do this in software:

GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP)

or

GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

6903 次点击
所在节点    Raspberry Pi
6 条回复
sennes
2018-11-02 11:17:28 +08:00
建议用上拉电阻的形式。
1. 按键按下时输入低电平(IO 接地)
2. 按键恢复后上拉电阻会把输入拉高。
你可以理解成默认值
不接上下拉,平时就是浮空状态,逻辑不好判断。
jatsz
2018-11-02 11:54:10 +08:00
楼上说的很简洁,确实是这样的。
我以前在这里也困惑过,后来还写了篇博客: https://www.imzjy.com/blog/2016-06-26-pullup-resistor
owenliang
2018-11-02 12:35:48 +08:00
@jatsz 看了一下,写的不错,3Q
owenliang
2018-11-02 14:24:07 +08:00
理解下来,接 GND 的是可以稳定低电平的,啥都没接的会漂来飘去,可以这么理解吧。
xmoiduts
2018-11-02 14:48:17 +08:00
数电里会提到,io 引脚在高低电平两种状态以外会有个高阻态,此时读取是楼上所说的“浮空”,输入值是不确定的。
xmoiduts
2018-11-02 14:50:38 +08:00
有些单片机会有内置的上 /下拉电阻,可以编程启用。比如正文最后那两行,Arduino 同理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/503693

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX