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

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

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

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

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

可以看到此时读取到的输入并不是一个确定的值。

如果换成从模拟引脚读取输入可以更明显地看到输入电压值的波动情况:

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

上拉电阻

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

电路原理图:

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

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

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

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

电路连接:

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

代码:

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

下拉电阻

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

电路原理图:

  • 开关断开:输入引脚通过一个10kΩ的电阻连接到地,引脚读到的是逻辑低电平
  • 开关闭合:输入引脚直接连接到电源,引脚读到的是逻辑高电平

【Arduino学习笔记06】上拉电阻和下拉电阻的更多相关文章

  1. Jquery学习笔记:利用jquery获取select下拉框的值

    jquery不是特别熟练,每次使用不常用的就要百度,特地记录下来. 我的下拉框是: <div class="form-group"> <select class= ...

  2. .net Core学习笔记3 编辑列表并绑定下拉列

    本次主要实现列表的编辑及下拉列表的绑定 先看效果图: 主要用DropDownList绑定下拉列后端代码: 1:定义一个存下拉数据类 public class SelectItem { public s ...

  3. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记

    机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...

  4. iOS学习笔记06—Category和Extension

    iOS学习笔记06—Category和Extension 一.概述 类别是一种为现有的类添加新方法的方式. 利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inher ...

  5. Arduino学习笔记① 初识Arduino

    1.前言     近段时间,博主陆续更新了ESP8266学习笔记,主要开发平台是Arduino.但是,对于很多无基础的初学者来说,甚至不了解Arduino是什么.因此,博主决定加入一个Arduino学 ...

  6. 【Arduino学习笔记05】Arduino数字输入、输出和脉冲宽带调制 -- 小项目:彩色小台灯

    基本功能: 长按控制按钮开机,长按控制按钮关机(>3s) 通过三个调节按钮调节灯的颜色,每一个按钮分别对应R,G,B值 模式切换:短按控制按钮切换模式(长亮模式/闪烁模式) 元器件清单: Ard ...

  7. Python 学习笔记(上)

    Python 学习笔记(上) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(上) 基础知识 基本输入输出 模 ...

  8. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  9. Web安全学习笔记 XSS上

    Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...

随机推荐

  1. HDU - 6287 口算训练 二分+质因数分解

    小Q非常喜欢数学,但是他的口算能力非常弱.因此他找到了小T,给了小T一个长度为nn的正整数序列a1,a2,...,ana1,a2,...,an,要求小T抛出mm个问题以训练他的口算能力.每个问题给出三 ...

  2. LInux 终端命令

    删除目录: 绝对路径开头以"/"开始之后跟着根目录或家目录 删除后不会在垃圾站中 树的顶部那个'.'代表当前目录 用mv命令对一个存在文件重命名 这个more关键字一次性显示不完的 ...

  3. 缓冲区溢出实验 2 sizeof/strlen

    实验环境.代码.及准备 https://www.cnblogs.com/lqerio/p/12870834.html vul2 下面只给出有漏洞部分的代码.Vul2问题为sizeof函数在计算时会考虑 ...

  4. HDU 6706 huntian oy(杜教筛 + 一些定理)题解

    题意: 已知\(f(n,a,b)=\sum_{i=1}^n\sum_{j=1}^igcd(i^a-j^a,i^b-j^b)[gcd(i,j)=1]\mod 1e9+7\),\(n\leq1e9\),且 ...

  5. 微信小程序开发抖音去水印功能

    之前找了很多抖音去水印的工具全是广告,所以索性自己写了一个,提供给大家免费试用以下是微信小程序的二维码 使用教程: 1.打开微信搜索小程序:沸点软件技术服务 2.打开沸点软件技术服务小程序 3.去抖音 ...

  6. vue component :is

    vue component :is Vue <component> element https://vuejs.org/v2/guide/components.html#Dynamic-C ...

  7. HTML5 动画效果的多种实现方式

    HTML5 动画效果的多种实现方式 1.  CSS3 transform + transition https://www.w3.org/TR/css-transforms-1/ https://ww ...

  8. 使用 js 实现十大排序算法: 堆排序

    使用 js 实现十大排序算法: 堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法. 大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列: 小顶堆:每个 ...

  9. how HTTPS works

    How HTTPS works HTTPS comic tutorials How HTTPS works ...in a comic! https://howhttps.works/ A cat e ...

  10. taro swiper & scroll tabs

    taro swiper & scroll tabs https://taro-docs.jd.com/taro/docs/components/viewContainer/swiper.htm ...