在初学arduino时,感觉最难理解的概念就是上拉电阻和下拉电阻了,不过你一旦理解了这个,后面的大部分都比较简单了!

简介

在数字逻辑电路中,一个信号不是0,就是1。正是因为这样,数字电路的设计才简单,可靠。
通常,用电压5v(或者接近5V)代表 on 开状态,代表高电平,对应状态 1。用电压0v (或者接近0v)代表off关状态,代表低电平,对应状态0。

有些开发板是基于3.3V的,因此使用3.3V作为高电平。

如果一个线路中的电压处于不确定的状态(例如一个引脚不和任何其它回路连通时),那我们就说它的电压是浮动的,他会随着时间不断变化,跳动,而且很容易受到外界环境的影响。处于这种不确定状态的电路会被随机解释为高或者低电平。 这种现象也叫电子噪声。

然而程序必须是严格准确的,所以电路的设计一定要避免线路电压处于浮动状态。

我们可以使用上拉电阻或者下拉电阻将电路的电压在任何时候都保持在确定的状态下,这就是上拉电阻和下拉电阻的作用。

下拉电阻

作用:将一个未知的电平拉低到稳定的低电平状态。

上图中,我们要判定input这个引脚 是高电平还是低电平。
当按钮S2没按下时,Input通过2个电阻接到GND,是稳定的低电平 。 当S2按下时,+5V ,S2 , R2 ,GND这条路导通,而Input接在R2的前面,因此会得到高电平。
因此我么可以通过Input端是高电平还是低电平来判断S2是否按下。如果没有 下拉电阻R2,那么S2没按下前,Input没有和任何东西相连,它的电平处于浮动状态,且很容易受环境影响,带来电子噪声。

上拉电阻

作用:将一个未知的电平拉高到稳定的高电平状态。

当S2没按下时,Input通过2个电阻和+5V连接(注意电路中并没构成回路,因此不会有压降,所以Input端依然是高电平),为高电平。当S2按下时,+5V,R2,S2,GND形成回路,R2 电阻大,产生压降大,因此后面的Input就是低电平。
因此,可以通过Input端的电平来判断S2是否按下。
相比下拉电阻,上拉电阻在数字电路中使用的更多。

Arduino中的拉电阻

Arduino的数字引脚和模拟引脚都内置了【上拉电阻】,电阻为20K~50K欧姆,他们需要使用 代码去激活使能。
提示:
1、如果你需要为Arduino自己配置外置的拉电阻,官方建议为10K欧姆。
2、不建议使用13脚作为输入引脚使用,因为13脚配置了一个板载的LED灯,即便是你使能了上拉电阻,LED等的电阻会拉低电压,使得引脚依然是低电平。如果你非要使用13作为输入,那就外置拉电阻。

使能Arduino上拉电阻的代码:

pinMode(10, INPUT);
digitalWrite(10, HIGH);     //激活10号引脚的上拉电阻,因此在没有收到任何输入信号时,10号引脚一直是高电平。/或者pinMode(10, INPUT_PULLUP) ;  //最新的Arduino库支持使用INPUT_PULLUP配置为输入且使能上拉电阻,和上面的2行代码等效。

注意:如果你配置一个引脚为输出,且使能上拉电阻,然后又切换IO模式为OUTPUT,那么此引脚会保持高电平状态。反之:如果一个引脚为原本为输出模式,且输出高电平,切换为输入后,将自动激活上拉电阻。

动手试一试
实验目的:不使用Arduino内置的上拉电阻,通过电子器件构造一个外置【下拉电阻】,实现功能:通过8号引脚判断按钮释放按下,按钮没按下时,8号引脚始终接受低电平信号,按钮按下时,接受到高电平信号。每当按钮按下时,反转板载LED的状态.

电路连线

代码

void setup() {pinMode(LED_BUILTIN , OUTPUT);    //使用板载LED作为控制对象.
}
void loop() {if(HIGH == digitalRead(8)){         //如果按钮按下digitalWrite(LED_BUILTIN ,       LOW ==  digitalRead(LED_BUILTIN)   ?  HIGH  : LOW );  //则反转 LED的状态delay(600);}}

出处:http://www.cnblogs.com/lulipro/

上拉电阻和下拉电阻的区别相关推荐

  1. 上拉电阻和下拉电阻_硬件基础:下拉电阻和上拉电阻如何工作

    上拉电阻和下拉电阻 by Taron Foxworth 通过塔伦·福克斯沃思(Taron Foxworth) 硬件基础:下拉电阻和上拉电阻如何工作 (Hardware fundamentals: ho ...

  2. 上拉电阻与下拉电阻的作用

    上拉电阻就是把不确定的信号通过一个电阻钳位在高电平,此电阻还起到限流的作用.同理,下拉电阻是把不确定的信号钳位在低电平.上拉电阻是指器件的输入电流,而下拉指的是输出电流. 那么在什么时候使用上.下拉电 ...

  3. “上拉电阻与下拉电阻”通俗解读

    原文链接:上拉电阻和下拉电阻的作用 下拉就是接地,上拉就相当于升压,提高驱动能力或者稳定性. 上拉电阻是用来解决总线驱动能力不足时提供电流的问题的.一般说法是上拉增大电流,下拉电阻是用来吸收电流(抵抗 ...

  4. 上拉电阻和下拉电阻的作用详解

    一.定义 1.上拉就是将不确定的信号通过一个电阻嵌位在高电平!"电阻同时起限流作用"!下拉同理! 2.上拉是对器件注入电流,下拉是输出电流 3.弱强只是上拉电阻的阻值不同,没有什么 ...

  5. 【电子电路】上拉电阻与下拉电阻有什么作用

    下拉就是接地,上拉就相当于升压,提高驱动能力或者稳定性. 上拉电阻是用来解决总线驱动能力不足时提供电流的问题的.一般说法是上拉增大电流,下拉电阻是用来吸收电流(抵抗干扰). 上拉是将电压拉高,下拉是将 ...

  6. 电路常识性概念(5)-上拉电阻、下拉电阻 / 拉电流、灌电流 / 扇出系数

    电路常识性概念(5)-上拉电阻.下拉电阻 / 拉电流.灌电流 / 扇出系数 (一)上拉电阻: 1.当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平 (一般为3.5 ...

  7. 吸电流、拉电流、灌电流、上拉电阻、下拉电阻、高阻态等基础知识普及

    吸电流.拉电流输出.灌电流输出 拉即泄,主动输出电流,从输出口输出电流: 灌即充,被动输入电流,从输出端口流入: 吸则是主动吸入电流,从输入端口流入. 吸电流和灌电流就是从芯片外电路通过引脚流入芯片内 ...

  8. 一文了解上拉电阻和下拉电阻(一)

    上拉(Pull Up )或下拉(Pull Down)电阻(两者统称为"拉电阻")最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),无论它的具 ...

  9. 【剖析】上拉电阻和下拉电阻原理及其作用

    电阻在电路中起限制电流的作用.上拉电阻和下拉电阻是经常提到也是经常用到的电阻.在每个系统的设计中都用到了大量的上拉电阻和下拉电阻.在上拉电阻和下拉电阻的电路中,经常有的疑问是:上拉电阻为何能上拉?下拉 ...

  10. 硬件设计——上拉电阻与下拉电阻

    上拉电阻与下拉电阻 引言 何为上拉电阻与下拉电阻 上拉电阻 下拉电阻 引言 在电路设计中,我们经常会看到下面的一些电路图,那么在这些电路中,不接电阻与接入电阻,电路中又会发生哪些作用,电阻在其中又起了 ...

最新文章

  1. 总结 | 深度学习损失函数大全
  2. Git和Repo管理使用简要介绍
  3. Python 学习之作用域
  4. Android总结 之 View系统学习(一)
  5. ElasticSearch6.x 7.x Elasticdump 在线安装、离线安装
  6. matlab第七讲,matlab第七讲教案
  7. qwidget show 是否有信号_PyQt5信号与槽机制入门(一)
  8. [NOI2014]魔法森林
  9. JavaScript的Forms验证-Parsley.js
  10. SAP ABAP开发从入门到精通——第15章 面向对象ALV
  11. 计算机网络第七版1-3
  12. ROS机器人系列竞赛之地下挑战赛 The DARPA Subterranean (SubT) Challenge Competition
  13. python使用什么来体现代码之间的逻辑关系,Python使用缩进来体现代码之间的逻辑关系。...
  14. 学生HTML个人网页作业作品~蛋糕甜品店铺共11个页面(HTML+CSS+JavaScript)
  15. java xlsm_poi读取excel(xls和xlsx,xlsm)给定单元格内容
  16. 消费金融及物流概念介绍
  17. [转载]实时 Java,第 4 部分: 实时垃圾收集
  18. [Servlet] HttpServletRequest
  19. 16个tomcat面试题
  20. jzoj4270. 【NOIP2015模拟10.27】魔道研究

热门文章

  1. ora12541TNS:listener does not currently know of service requested in connect
  2. ue4 windows下创建Dedicated server
  3. delphi基础01-delphi表达式、delphi运算符、delphi函数调用、delphi集合构造函数、delphi索引、(值或变量)delphi类型转换
  4. merge /的使用方法
  5. js获取当前的年月日时间
  6. 用 Python 画如此漂亮的插图 ,So easy
  7. MySQL事务原理之事务概述和隔离级别
  8. echarts文字换行----淘干货找坏男人
  9. 【GPU精粹与Shader编程】(一) 开篇 全系列11本书核心知识点总览
  10. 安装 Win10+GTX1050ti+cuda8.0+cuDNN v7.1.4