Arduino 上拉下拉电阻 内置上拉电阻

文章目录

  • 引脚悬空
  • 上拉电阻
  • 下拉电阻
  • 内置上拉电阻


引脚悬空

先看一段代码

void setup() {
     
  Serial.begin(9600);
  pinMode(2,INPUT);
}

void loop() {
     
  Serial.println(digitalRead(8));
  delay(500);
}

并简单连接电路
Arduino 上拉下拉电阻 内置上拉电阻_第1张图片
此时不触碰开关和7引脚,串口会打印高电平还是低电平呢?
Arduino 上拉下拉电阻 内置上拉电阻_第2张图片可以看到输出结果是随机值,1高电平 0低电平,一直变化

这是因为pinMode设置为 INPUT 后电阻极大,外部微小的电流变化比如相邻引脚的电流都会影响读取的点平

我们希望不触碰时能稳定在某个电平,此时就需要 上拉下拉电阻 的介入

上拉电阻

顾名思义,上拉电阻将引脚上拉到高电平
Arduino 上拉下拉电阻 内置上拉电阻_第3张图片
10kΩ 的电阻称为上拉电阻,目的是保护电路

开关断开时 5V 直接与引脚相连,此时引脚读取到的是高电平
开关按下后,引脚被短路,5V直接接地,此时引脚读取到的是低电平

实物图:
Arduino 上拉下拉电阻 内置上拉电阻_第4张图片

下拉电阻

Arduino 上拉下拉电阻 内置上拉电阻_第5张图片
同理,将引脚接地

开关断开时为低电平
开关闭合时为高电平

实物图:
Arduino 上拉下拉电阻 内置上拉电阻_第6张图片

内置上拉电阻

Arduino自带内置上拉电阻,不用像上面那样自己搭建,直接在代码中开启即可

pinMode(pin,INPUT_PULLUP);

Arduino 上拉下拉电阻 内置上拉电阻_第7张图片此时引脚读取的为高电平

若需要读取低电平,外置一个变量赋值digitalRead后逻辑取反 ! 即得到低电平

你可能感兴趣的:(Arduino 上拉下拉电阻 内置上拉电阻)