前面介绍了Arduino数字I/O,通过控制数字引脚输出来控制LED灯亮灭。本篇将介绍数字I/O的输入功能,通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的。

1. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • 1个LED灯
  • 1个220Ω电阻
  • 1个轻触按键

实验中我们用到了轻触按键,常见的有2脚按键和4脚按键,其内部结构如下图所示:

当按下按键时,按键两端接通,当放开时,两端再次断开。

2. 实验步骤

  1. 根据原理图搭建电路

    直插式LED灯负极接开发板GND,正极接220Ω限流电阻,电阻另一端接开发板数字9引脚。按键一端接开发板GND,另一端接数字引脚2。

    实验原理图如下图所示:

实物连接图如下图所示:

  1. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
/** Digital_Button* 通过按键控制LED灯亮灭*/int buttonPin = 2;     // 按键的管脚定义
int ledPin =  9;      // LED灯管脚定义void setup() {pinMode(ledPin, OUTPUT);  //设置LED管脚输出模式pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
}void loop() {if (digitalRead(buttonPin) == LOW) { // 若按键被按下delay(80); //等待跳过按键抖动的不稳定过程if (digitalRead(buttonPin) == LOW) // 若按键被按下{      digitalWrite(ledPin, HIGH); // 点亮LED灯}}else {   digitalWrite(ledPin, LOW); // 熄灭LED灯}}
  1. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

3. 实验现象

按下按键,LED灯点亮。放开按键,LED灯熄灭。

4. 函数介绍

digitalRead()

  • 描述:读取指定数字引脚的值
  • 函数原型:digitalRead(pin)
  • 参数:要读取的数字引脚编号
  • 返回值:HIGH(1)或LOW(0)

5. 总结分析

通过digitalRead()函数来读取数字I/O引脚状态,然后根据状态去点亮或者熄灭LED灯。需要注意:

  • 由于Arduino上电后,数字I/O管脚处于悬空状态,此时通过digitalRead()读到的是一个不稳定的值(可能是高,也可能是低)。所以通过pinMode()函数设置按键引脚为上拉输入模式。即使用内部上拉电阻,按键未按下时,引脚将为高电平,按键按下为低电平。

  • 按键在按下的过程中,有一段接触未接触的不稳定过程,即按键的抖动。在判断按键状态时,通过delay()延时跳过抖动的不稳定状态,即软件上进行消抖。

  • 可以不使用内部上拉电阻,在电路上添加按键的上拉电阻或下拉电阻,可达到相同效果。

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:

Arduino基础入门篇07—按键控制LED灯相关推荐

  1. Arduino基础入门篇(按键控制LED)

    本篇我们主要介绍通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的. 一.按键开关介绍 按键开关主要是指轻触式按键开关,也称之为轻触开关.按键开关是一种电子开关,属于电子元器件类,最早 ...

  2. Arduino基础入门篇10—电位器控制LED灯

    本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度. 模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚.它可以将 ...

  3. Arduino基础入门篇06—流动的LED灯

    上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯.本篇将使用面包板搭建电路,多个LED灯配合显示流动效果. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连 ...

  4. Arduino程序设计(二) 按键控制LED灯

    按键控制LED灯程序设计 前言 一.按键控制LED灯--内部上拉(基础) 二.按键控制LED灯--外部上拉(基础) 三.按键控制LED灯(进阶) 总结 参考文献 前言 本文主要介绍三种按键控制LED灯 ...

  5. Arduino基础入门篇24—继电器控制

    继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...

  6. Arduino基础入门篇09—会呼吸的灯

    本篇使用Arduino模拟输出功能,通过PWM脉宽调制来控制LED灯亮度,使其呈现呼吸灯效果. 1. 模拟信号 数字信号是以0.1表示的电平不连续变化的信号,而模拟信号则是用连续变化的物理量来表示信息 ...

  7. FPGA(1)基础入门 -- 按键控制led灯

    目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...

  8. FPGA:基础入门按键控制LED灯

    题目概述: 使用按键控制LED灯亮灭. 无按键按下--LED全灭 按下KEYO--从右向左的流水灯效果 按下KEY1--从左向右的流水灯效果 按下KEY2--LED闪烁 按下KEY3--LED全亮 编 ...

  9. arduino按键控制LED 灯(按一下切换一次状态)

    物联网实验一 2021.3.24 arduino按键控制LED 灯(按一下切换一次状态) #define led 13 //定义led灯为13引脚 #define button 3 //定义butto ...

最新文章

  1. java返回json ajax_Spring MVC 中 AJAX请求并返回JSON的示例
  2. 面向对象第四单元(UML)总结体会课程总结
  3. SQL查询过滤Where子句用法
  4. 关于golang的append函数的踩坑
  5. linux系统监控命令
  6. TCP/IP网络编程
  7. 【java】统计英文文本中某些字母出现的次数
  8. HDU 4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)
  9. 东方通tongweb的安装及使用(图文详细版)
  10. wget下载github的releases的软件
  11. ukey网络连接异常_Ukey的各种操作,你知道吗?
  12. JQuery----倒计时插件downCount
  13. iOS之加载Gif图片
  14. 《编程人生》中15业界传奇人物介绍
  15. java登陆界面图片_java登陆界面如何插入背景图片
  16. python正版软件多少钱_正版数据库软件需要多少钱
  17. 中国皮卡的解禁是个错误!!
  18. Windows安装Git cz (commitizen)
  19. sql查询 (连表查询)
  20. Java算法训练:沙盘上的字符串

热门文章

  1. Java框架学习顺序,主要讲解三大框架
  2. 索引组织表(index organized table, IOT)
  3. LG Optimus G Pro 相关
  4. vue项目使用高德地图的定位及关键字搜索功能
  5. Java-两个较大的List快速取交集、差集
  6. 刷机之后手机显示没有服务器,手机被刷机后云服务器
  7. 数据结构2021温习篇——队列(5a)
  8. 怎么把平板作为电脑的第二扩展屏幕
  9. 调用后台接口返回报错前端隐藏提示_从零开始的Android新项目9 - 前端用后台接口设计...
  10. 在可能的领域定位自我