关于上拉电阻和下拉电阻的说明

参考链接

错误接线方式说明:

未添加上拉电阻或下拉电阻的接线方式如下,但是这种方式有问题,无法在实际环境使用,分析如下:当开关合上的时候,开关的左右连通,这时 3.3v 就顺着导线进入 D0,没毛病。但是在开关断开的时候,开关的左端和右端断开了,这样 3.3v 到开关的右端就过不去了,开关的左端就变成悬空了,由于受环境中电磁波等干扰,这时 D0 的输入到底读入的到底是一个什么值就变成玄学了,可能是低电平 LOW,可能是高电平 HIGH。


下拉电阻的使用方法:

上述接线只关心了开关合上的情况,但是并没有考虑开关断开的情况,因此设计里应该在开关断开的时候 D0 引脚上应该是低电平。那是不是把 GND 连在开关的左端就可以了呢?当然不行,这样的话当开关合下的时候 3.3v 和 GND 都会走到开关的左端,就会短路。正确的姿势应该是在开关的左端和 GND 之间接一个阻值非常大的电阻,这个电阻就叫做下拉电阻,这样以来,当开关打开的时候,D0 就会通过这个下拉电阻获得一个 GND 上的低电平信号。

在Esp8266,通常使用的下拉电阻的阻值是10kΩ。这种将悬空端置为低电平的方式就叫做下拉,对应的英文名称叫 pull-down 或者 pull-low。


上拉电阻的使用方法:

和下拉电阻的概念类似,上拉电阻就是将悬空端拉成高电平,这样在开关断开的情况下 GPIO16 就会呈现高电平。接线方式如下图,电阻的一端接在了3.3v 的位置,表示上拉,而开关的另一头接在了 GND 上,如果程序不改的话表现应该是反过来的,即与正常的逻辑是反着的,低电平代表有效。

关于下拉电阻和上拉电阻对比如下图。

注意:对于采用内部上拉电阻的情况,要将开关公共端接到GND上面。


Arduino UNO中上拉电阻的使用

由于Arduino UNO的主控芯片为ATmega328P,该芯片内部有上拉的功能,可以使用内部上拉功能代替外部上拉,采用内部上拉时,管脚定义如下

pinMode(2,INPUT_PULLUP); //将2号管脚设置为输入并且内部上拉模式

不采用上拉电阻时定义管脚代码为pinMode(2,INPUT);

注意:ATmega328P仅仅只有内上拉功能,没有下拉功能。


ESP8266中上拉电阻的使用

对于ESP8266,其GPIO 0-15 引脚都配有内置上拉电阻。这一点与Arduino十分类似。GPIO16 引脚配有内置下拉电阻。

补充说明:由于芯片内部都是弱上拉电阻,实际使用中还需要根据实际场景进行灵活使用。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值