Arduino基础入门篇07—按键控制LED灯
前面介绍了Arduino数字I/O,通过控制数字引脚输出来控制LED灯亮灭。本篇将介绍数字I/O的输入功能,通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的。
1. 实验材料
- Uno R3开发板
- 配套USB数据线
- 面包板及配套连接线
- 1个LED灯
- 1个220Ω电阻
- 1个轻触按键
实验中我们用到了轻触按键,常见的有2脚按键和4脚按键,其内部结构如下图所示:
当按下按键时,按键两端接通,当放开时,两端再次断开。
2. 实验步骤
根据原理图搭建电路
直插式LED灯负极接开发板GND,正极接220Ω限流电阻,电阻另一端接开发板数字9引脚。按键一端接开发板GND,另一端接数字引脚2。
实验原理图如下图所示:
实物连接图如下图所示:
- 新建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灯}}
连接开发板,设置好对应端口号和开发板类型,进行程序下载。
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灯相关推荐
- Arduino基础入门篇(按键控制LED)
本篇我们主要介绍通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的. 一.按键开关介绍 按键开关主要是指轻触式按键开关,也称之为轻触开关.按键开关是一种电子开关,属于电子元器件类,最早 ...
- Arduino基础入门篇10—电位器控制LED灯
本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度. 模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚.它可以将 ...
- Arduino基础入门篇06—流动的LED灯
上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯.本篇将使用面包板搭建电路,多个LED灯配合显示流动效果. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连 ...
- Arduino程序设计(二) 按键控制LED灯
按键控制LED灯程序设计 前言 一.按键控制LED灯--内部上拉(基础) 二.按键控制LED灯--外部上拉(基础) 三.按键控制LED灯(进阶) 总结 参考文献 前言 本文主要介绍三种按键控制LED灯 ...
- Arduino基础入门篇24—继电器控制
继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...
- Arduino基础入门篇09—会呼吸的灯
本篇使用Arduino模拟输出功能,通过PWM脉宽调制来控制LED灯亮度,使其呈现呼吸灯效果. 1. 模拟信号 数字信号是以0.1表示的电平不连续变化的信号,而模拟信号则是用连续变化的物理量来表示信息 ...
- FPGA(1)基础入门 -- 按键控制led灯
目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...
- FPGA:基础入门按键控制LED灯
题目概述: 使用按键控制LED灯亮灭. 无按键按下--LED全灭 按下KEYO--从右向左的流水灯效果 按下KEY1--从左向右的流水灯效果 按下KEY2--LED闪烁 按下KEY3--LED全亮 编 ...
- arduino按键控制LED 灯(按一下切换一次状态)
物联网实验一 2021.3.24 arduino按键控制LED 灯(按一下切换一次状态) #define led 13 //定义led灯为13引脚 #define button 3 //定义butto ...
最新文章
- java返回json ajax_Spring MVC 中 AJAX请求并返回JSON的示例
- 面向对象第四单元(UML)总结体会课程总结
- SQL查询过滤Where子句用法
- 关于golang的append函数的踩坑
- linux系统监控命令
- TCP/IP网络编程
- 【java】统计英文文本中某些字母出现的次数
- HDU 4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)
- 东方通tongweb的安装及使用(图文详细版)
- wget下载github的releases的软件
- ukey网络连接异常_Ukey的各种操作,你知道吗?
- JQuery----倒计时插件downCount
- iOS之加载Gif图片
- 《编程人生》中15业界传奇人物介绍
- java登陆界面图片_java登陆界面如何插入背景图片
- python正版软件多少钱_正版数据库软件需要多少钱
- 中国皮卡的解禁是个错误!!
- Windows安装Git cz (commitizen)
- sql查询 (连表查询)
- Java算法训练:沙盘上的字符串