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


引脚悬空

先看一段代码

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

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

并简单连接电路
在这里插入图片描述
此时不触碰开关和7引脚,串口会打印高电平还是低电平呢?
在这里插入图片描述可以看到输出结果是随机值,1高电平 0低电平,一直变化

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

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

上拉电阻

顾名思义,上拉电阻将引脚上拉到高电平
在这里插入图片描述
10kΩ 的电阻称为上拉电阻,目的是保护电路

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

实物图:
在这里插入图片描述

下拉电阻

在这里插入图片描述
同理,将引脚接地

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

实物图:
在这里插入图片描述

内置上拉电阻

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

pinMode(pin,INPUT_PULLUP);

在这里插入图片描述此时引脚读取的为高电平

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

猜你喜欢

转载自blog.csdn.net/S_aitama/article/details/106249432