上拉电阻器非常普遍,您会一直在数字电路中看到它。它只是一个电阻器,从输入端连接到Vdd,电路的正电源。

上拉电阻和下拉电阻的工作原理(一文读懂上拉电阻)(1)

上拉电阻用于确保在未按下按钮时输入引脚上具有高电平状态。如果没有一个,您的输入将是浮动的,并且您有可能在输入在高和低之间随机变化,因为它在空气中拾取噪音

如何选择上拉电阻值

低电阻值称为强上拉(电流流动较多),高电阻值称为弱上拉(电流较少

规则 1:值不能太高。

上拉值越高,输入端的电压就越低。重要的是,电压要足够高,芯片才能将其视为高电平或逻辑1输入。

例如,如果使用具有 10V 电源的 CD4017,则输入端至少需要 7V 才能将其视为 HIGH。

规则2:但它也不能太小。

例如,如果您选择100 Ω,问题是当按下按钮时,您会获得大量电流流经它。

使用9V电源时,您可以在100 Ω(90 mA)获得9V电压。这是不必要的功率浪费,但这也意味着电阻器需要承受0.81W。大多数电阻器只能处理高达0.25W的功率。

经验法则

上拉电阻和下拉电阻的工作原理(一文读懂上拉电阻)(2)

一般规则是使用比输入引脚的输入阻抗(R2)小一个数量级(1/10)的上拉电阻(R1),小10倍的电阻值。

通常,10 kΩ的上拉值就可以解决问题。但是,如果您想了解它的工作原理,请继续阅读。

上拉电阻器如何工作?

上拉电阻和下拉电阻的工作原理(一文读懂上拉电阻)(3)

您可以使用分压器公式查找未按下按钮时输入引脚上的电压:

上拉电阻和下拉电阻的工作原理(一文读懂上拉电阻)(4)

如果对上拉R1使用1MΩ电阻,并且输入引脚的阻抗R2约为1MΩ(形成分压器),则输入引脚上的电压约为VCC的一半,并且微控制器可能不会将引脚记录为处于高电平状态。在5V系统上,输入电压为2.5V

计算示例

假设您的芯片的输入阻抗为1MΩ(对于许多芯片来说,100kΩ至1MΩ是正常的)。如果您的电源是9V,并且您选择10 kΩ的上拉电阻值,那么输入引脚上的电压是多少?

上拉电阻和下拉电阻的工作原理(一文读懂上拉电阻)(5)

输入引脚上的电压为8.9V,足以用作高电平输入。

通常,如果您坚持使用不超过输入阻抗十倍的上拉电阻的经验法则,您将确保输入引脚上始终具有至少90%的VDD电压。

总结

由于通常需要上拉电阻,因此许多MCU(如Arduino平台上的ATmega328微控制器)都具有可以启用和禁用的内部上拉电阻。要在 Arduino 上启用内部上拉,您可以在 setup() 函数中使用以下代码行:

COPY CODEpinMode(5, INPUT_PULLUP); // Enable internal pull-up resistor on pin 5

需要指出的另一件事是,上拉电阻越大,引脚对电压变化的响应速度就越慢。这是因为馈电输入引脚的系统本质上是一个与上拉电阻耦合的电容器,因此形成RC滤波器,而RC滤波器需要一些时间来充电和放电。如果您有一个非常快速变化的信号(如USB),高阻值上拉电阻可以限制引脚改变状态的速度(信号还具有可靠性)。这就是为什么您经常会在USB信号线上看到1k至4.7KΩ电阻的原因。

所有这些因素都决定了使用什么值的上拉电阻器。

结束

路遥先生的《平凡的世界》书中最经典的一句话莫过于:“你知道,幸福不仅仅是吃饱穿暖,而是勇敢的战胜困难。”

,