【Arduino学习笔记06】上拉电阻和下拉电阻

为何要用上拉电阻和下拉电阻?——避免输入引脚处于“悬空”状态

下图是一个没有使用上拉电阻/下拉电阻的电路图:ui

 

在按键没有按下时,要读取的输入引脚没有链接到任何东西,这种状态就称为“悬空”spa

因为附近引脚的电气噪声,从处于“悬空”状态的输入引脚读取到的数值会在高电平和低电平之间来回波动,获得一个不肯定的值。3d

 

若是用串口监视器将 在没有使用上拉/下拉电阻的状况下 从一个数字引脚读取的输入打印出来,会获得图示的结果:code

能够看到此时读取到的输入并非一个肯定的值。blog

 

若是换成从模拟引脚读取输入能够更明显地看到输入电压值的波动状况:class

 

 只有输入时要考虑上拉电阻和下拉电阻的问题,输出时不用考虑。原理

 

上拉电阻

上拉电阻:将输入引脚经过一个10kΩ的电阻上拉到电源上im

 

电路原理图:db

 

  • 开关断开:输入引脚经过一个10kΩ的电阻链接到VCC,引脚读到的是逻辑高电平
  • 开关闭合:输入引脚被短路,VCC直接链接到地,引脚读到的是逻辑低电平

 

在串口监视器中打印出的结果为:img

 

使用Arduino I/O口内部上拉功能:

ATmega328P 每一个I/O端口都内置了20kΩ上拉电阻(包括数字引脚和模拟输入引脚)(注意:没有内置下拉电阻)。

 

电路链接:

将按钮的一端接到GND,另外一端接到输入引脚(这里是D2),如图所示:

 

 代码:

void setup{
    ...
    pinMode(2,INPUT_PULLUP);
    ...
}

 

下拉电阻

下拉电阻:将输入引脚经过一个10kΩ的电阻下拉到地

 

电路原理图:

 

  • 开关断开:输入引脚经过一个10kΩ的电阻链接到地,引脚读到的是逻辑低电平
  • 开关闭合:输入引脚直接链接到电源,引脚读到的是逻辑高电平
相关文章
相关标签/搜索