1.实验说明

单路按键模块,它主要采用1个轻触开关,自带1个黄色按键帽。前面我们学习了怎么让我们单片机的引脚输出一个高电平或者低电平,这节实验我们就来学习怎么读取引脚是高电平(5V)还是低电平(0V)。

实验中,我们通过读取传感器上S端高低电平,判断传感器上按键是否按下;并且,我们在串口监视器上显示测试结果。

2.实验原理

附原理图,按键有四个引脚,其中1和3是相连的,2和4是相连的,在我们未按下按键时,13与24是断开的,信号端S读取的是被4.7K的上拉电阻R1所拉高的高电平,而当我们按下按键时,13和24连通。信号端S连接到了GND,此时读取到的电平为低电平,即按下按键,传感器信号端为低电平;松开按键时,信号端为高电平。

3.接线图

4.实验程序

int val = 0;  //用来存放按键值int button = 2; //按键的管脚接数字口D2void setup() {Serial.begin(9600); //启动串口监视器并设置波特率为9600pinMode(button, INPUT); //设置按键管脚为输入模式}void loop() {val = digitalRead(button);  //读取按键的值并赋给变量valSerial.print(val);  //串口上打印出来if (val == 0) { //按下按键则读取到低电平,打印按下相关信息Serial.print("        ");Serial.println("Press the botton");delay(100);}else {  //打印松开按键相关信息Serial.print("        ");Serial.println("Loosen the botton");delay(100);}}

5.代码说明

  1. pinMode(button, INPUT); 由前面学过的知识我们知道,在这里我们定义按键管脚为数字口2,设置为输入模式。通过pinMode()配置为INPUT的Arduino(ATmega)引脚处于高阻抗状态。配置为INPUT的引脚对要采样的电路的要求极小,相当于该引脚前面的100MΩ串联电阻。这使它们对于读取传感器很有用。将引脚配置为INPUT,并且正在读取开关,则当开关处于断开状态时,输入引脚将处于“悬空状态”,从而导致不可预测的结果。为了确保开关断开时的读数正确,必须使用上拉或下拉电阻(我们的模块已经使用上拉电阻R1)。该电阻的目的是在开关断开时将引脚拉至已知状态。通常选择一个4.7K/10 K欧姆的电阻,因为它的阻值足够低,可以可靠地防止输入悬空,同时,该阻值也要足够高,以使开关闭合时不会消耗太多电流。如果使用下拉电阻,则当开关断开时,输入引脚将为低电平;当开关闭合时,输入引脚将为高电平。如果使用上拉电阻,则当开关断开时,输入引脚将为高电平;当开关闭合时,输入引脚将为低电平。

2. Serial.begin(9600);初始化串口通信,并设置波特率为9600.

3. digitalRead(button);读取按键的数字电平,高HIGH或者低LOW。如果该引脚未连接任何东西,则digitalRead()可以返回HIGH或LOW(并且可以随机更改)。UNO R3模拟输入引脚可以用作数字引脚:A0、A1、A2、A3、A4、A5,我们的plus开发板多出两个模拟引脚A6及A7。

4. if..else..语句:当if后面()的逻辑判断为真时,执行大括号里的代码;否则执行else后面{}里的代码。

5. 代码逻辑是传感器感应到按键按下时,信号端为低电平,D2口为低电平,即val为

0。这时我们在串口监视器显示对应的数字值和字符;否则(传感器感应到按键松开时),val为1,窗口监视器显示1和另外的字符。

6.测试结果

上传实验程序成功,利用USB线上电后,打开串口监视器,设置波特率为9600。串口监视器显示对应数据和字符。实验中,当传感器按下按键时,val为0,串口监视器显示“Press the button”字符;松开按键时,val为1,串口监视器显示“Loosen the button”字符,如下图。

Arduino 按键传感器检测实验带原理图说明相关推荐

  1. Arduino 按键输入检测,消抖示例程序

    Arduino 按键输入检测,消抖示例程序 在按键未做输入信号检测的硬件时,避免不了需要对其进行消抖处理,消抖方法可以时硬件消抖或者软件消抖.物理消抖的办法有:在按键旁边并联一个电容的电路,来消抖或者 ...

  2. Arduino人体红外热释传感器检测实验

    相关资料链接 链接:https://pan.baidu.com/s/1eE0rkaSJsKJMU_RUorS5OA 提取码:3ujh 1.1 项目介绍: 人体红外热释电传感器是一款基于热释电效应的人体 ...

  3. 《Arduino实验》实验:土壤湿度传感器检测土壤湿度

    文章目录 实验内容 实验器件 实验连线 实验步骤 实验代码 实验结果 实验内容 使用土壤湿度传感器检测土壤湿度,并在串口输出检测结果: 实验器件 arduino X 1 土壤湿度传感器 X 1 USB ...

  4. 《Arduino实验》实验二:DHT11温湿度传感器检测当前环境温湿度

    更完整.更全面的Arduino实验存放在我的github上,有需要的可以到github上查看和下载. 当然如果你觉得有帮助,给一个小小的star和fork就谢谢您了. gtihub网址:https:/ ...

  5. Arduino 使用火焰传感器检测火焰实验

    相关资料链接 点这里 1.1 项目介绍: 火焰传感器它可以检测火焰或者波长在760纳米-1100纳米范围内的光源,它的探测角度为60度左右,它对火焰光谱特别灵敏并且灵敏度可调,性能稳定,是救火机器人必 ...

  6. Arduino实验十 利用土壤湿度传感器检测西瓜皮湿度

    学习任务: 利用土壤湿度传感器检测西瓜皮湿度 组件: Arduion主板 土壤湿度传感器 I2CLCD1602液晶显示器 面包板 杜邦线 USB数据线 下图是土壤湿度传感器 实验步骤: 1.建立电路 ...

  7. Arduino UNO驱动土壤湿度传感器检测

    Arduino UNO驱动土壤湿度传感器检测 简介 运行要求 Arduino UNO与传感器接线 程序展示 实践效果 总结 简介 本次使用到是这个新款土壤湿度传感器! 这款电容式土壤湿度传感器区别于市 ...

  8. 【紫光同创国产FPGA教程】【第三章】按键检测实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G/PG ...

  9. 传感器:SHT30温湿度传感器检测环境温湿度实验(底部附代码)

    一.导言 SHT30温湿度传感器模块是通过IIC驱动,所以大家使用该模块时,需要具备IIC的基本知识,这篇文章带领大家一起使用SHT30模块进行温湿度的测量,当然DHT10/DHT10原理都一样,好了 ...

最新文章

  1. linux深度定制,专为国人订制!Linux Deepin新版发布
  2. Linux内核分析(二) 段页式分析
  3. 机器学习书籍资料(自己正在读的)---self-reading ML booklist ( To be continued )
  4. java gzip 多个文件_Java Zip多文件压缩和 GZIP压缩
  5. 【Android】Android开发启动app弹出一张广告图片,Dialog可以查看大图,查看某个图片功能...
  6. Grafana、M3DB、Prometheus 集成 关于M3DB集成的文章本就不多,快来瞅瞅吧!!!说不定有用呢?
  7. mysqldump快速导数据
  8. linux实现快捷键,Linux Bash下如何实现快捷键效果
  9. C语言小程序打印楼梯图案
  10. EvoSuite生成单元测试用例
  11. JavaWeb 狂神
  12. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南
  13. ios 做不倒翁动画效果
  14. 一步一步安装CentOS7(图文)
  15. 中英文在线语音转文字的方法
  16. heatmap.js来绘制热力图
  17. 【智能开发】血压计方案设计与硬件开发
  18. 深度学习,NLP和表征(译:小巫)
  19. 云原生及k8s组件简单介绍
  20. @Value(“#{}“)与@Value(“${}“)的区别

热门文章

  1. python二级第三方库汇总
  2. 阿里Java开发手册一方库/二方库/三方库等概念详解
  3. 网上0月租不限量、不实名的流量卡是真的吗?
  4. 生而为人,请务必善良
  5. oppor17刷鸿蒙系统,coloros11正式版下载
  6. div 页面框架布局
  7. 职业 专利代理人_代理公司大公司或自由职业者的设计师
  8. 驻云科技完成C轮近亿元融资 成为撬起云计算的“支点”
  9. 洛谷-P1885-Moo-普及--分治
  10. 2020年一线城市程序员工资大调查