什么是上拉/上拉电阻?

电器工程 Arduino 开关 推拉
2022-01-11 17:45:55

作为问题关于上拉电阻的问题仅回答了我在“编辑”中已经提到的问题的一部分,这个问题是在提出这个问题后不久提出的,这里的答案(下面)非常详细,上下文相关且易于理解。绝对不是重复的;标记为重复 2-3 点


我正在读一本关于 Arduino 的书,我只是不明白上推电阻的概念,以下是书中的引述:

电路

为什么我们需要电阻R1?只要不按下按钮,R1 保证 Arduino 的数字输入引脚 7 连接到 +5V 的恒定电压。如果按下按钮,引脚 7 上的信号下降到地 (GND),同时 Arduino 的 +5V 电源连接到 GND,我们通过限制可以从 +5V 流向 GND 的电流来避免短路带一个电阻器(1 - 10 KΩ)。此外,如果引脚 7 和 +5V 之间根本没有连接,那么只要不按下按钮,输入引脚就会“悬空”。这意味着它既不连接到 GND 也不连接到 +5V,拾取静电噪声导致输入的错误触发。

另一本书称它为 Arduino 的上电阻,因为它将电流拉向 5V,这让我更加困惑 - 电阻器如何增加电压,不应该是电压降吗?

编辑- 感谢@Golaž 在评论中指出关于上拉电阻的问题(此编辑于 3 月 30 日 ~6 插入)中的有用材料。

那么,这整个概念是什么?哪个术语俯卧撑/上拉是正确的?

此外,参考上面的电路 -

  1. 什么是浮动引脚?
  2. R1如何避免短路为什么它算作短路而不是闭路。毕竟 GND 是一个接收器。
  3. 仅 5V 时短路是否严重问题

我已经读过:

但我还是不太明白。

4个回答

在电路设计中,“上拉”比“俯卧撑”更常用。但我想任何人都会理解你。

上拉电阻不会增加电压。它只是将已经存在的 5V 电源连接到 Arduino 的数字输入引脚。数字输入引脚设计为具有非常高的内阻,因此流入引脚的电流极少。如果流过电阻的电流非常小,则电阻两侧的电压将大致相同。因此,R1 两侧的电压约为 5V。这意味着,最重要的是,当没有按下开关时,输入引脚上的电压将为 5V。

注意:箭头代表电流。

示意图

模拟此电路- 使用CircuitLab创建的原理图

每当 Arduino 测量数字输入引脚的状态时,它只能选择两个选项之一:高或低。必须将某些外部设备连接到该引脚(在您的情况下为开关)以施加高压或低压。

但是,如果没有任何东西连接到引脚怎么办?您可能会想说它应该读作低电压。不幸的是,这是不正确的。我们称这种情况为“浮动”。该引脚没有被外部设备主动驱动为高电平或低电平,因此它只是在未知状态下浮动。这很危险,因为 Arduino在测量引脚时仍然必须选择高电平或低电平。它不能选择“都不”作为选项。它会选择哪一个?谁知道。事实上,物理金属针本身将充当微型天线,并可能受到附近任何静电场的影响。简单地在芯片附近移动你的手可能会导致它偶尔改变状态。故事的寓意:永远不要让数字输入浮动。

上拉电阻的唯一作用是防止在未按下开关时引脚悬空。

一旦实际按下开关,5V 电源就会通过上拉电阻和闭合开关接地。但是电阻器会将电流限制在合理的范围内,从而避免接地短路。使用欧姆定律,电阻器底部的电压现在将非常接近 0V。由于这是连接数字输入引脚的地方,Arduino 将读取低电压。现在,编程到 Arduino 中的固件可以安全地读取数字输入引脚的状态并确定何时按下按钮。

示意图

模拟这个电路

那么为什么我们不直接将 5V 电源连接到数字输入引脚并放弃上拉电阻呢?正如您在问题中指出的那样,当按下开关时,这将导致 5V 电源对地短路。根据电源的大小,它可能会导致大量电流流过开关。它可能会损坏电源并可能熔化按钮。至少,电源会掉电或断电,并且电源输出将下降到几乎为零。如果电源有智能,它会简单地关闭。所以是的,对地短路是“仅 5V”的严重问题。

示意图

模拟这个电路

正确的说法是上拉。我从来没有听说过俯卧撑,但我想它确实意味着同样的事情。

  1. 浮动引脚是没有相关电压的引脚。一根没有连接任何东西的电线是漂浮的。

  2. 见下文。

  3. 这个很棘手。这取决于上下文。从您的问题来看,短路可能意味着电压对地短路。 这是不好的。很坏。不要这样做。如果没有电阻,即使 1V 对地短路也是不好的。

您可以将电压源视为具有变化电流的固定电压。这意味着电源将提供尽可能多的电流以维持 5V。

将电压短路到地的问题是电源想要提供一些电压(相对于地)。但电压输出为 0V(因为它接地)。那么电源如何达到其电压水平呢?它增加了电流。然后电流增加,但电压仍然为0,因此它不断增加并增加。其他电路将无法处理此问题,它们会发热并起泡。您使用的 PCB 走线或电线无法处理此问题,因此它们会发热、着火或直接破裂。

你如何解决这个问题?在两者之间添加一些东西来控制电流到安全值。添加一个电阻器(这是#2的答案)。

通过添加一个电阻器,电源不必提供无限电流(或者实际上,它的极限是多少),因为电阻器会说“嘿!慢下来!”。

由于其他人已经解决了上拉电阻,我将仅强调 5v 的危险。

前段时间我把一台旧的太阳电脑刮掉了,并保持了一段时间的电源。它有5v输出。我不小心把它短路了。在保险丝熔化之前,流过短弧的 100+ 安培将接触点侵蚀了大约 1/8 英寸。

所以发生了什么事?在正常运行期间,它是一个额定电流超过 100 安培、电压为 5 伏的大电源。随着电阻下降,电流增加,直到它开始对铜触点进行电弧腐蚀,并超过电源的额定电流足够大的裕度以致失效。请记住,如果 \$i={v\over r}\$ 和 \$v=5\$ 那么 \$\lim_{r\to0}{5\over r} = \infty\$ 幸运的是,还有其他限制当前。

对上述问题的最简单答案是“添加上拉电阻只是为了将引脚保持在一个特定状态而不是使其处于浮动状态”。这是因为当引脚浮动时,高阻抗电压的边际漂移可能会将其视为一种特定状态(高或低)。所以总是首选为这些引脚设置一个上拉电阻。