第四章 按键-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2075|回复: 0

第四章 按键

[复制链接]
发表于 2022-2-8 15:52 | 显示全部楼层 |阅读模式
本帖最后由 OpenJumper 于 2022-2-8 15:52 编辑

[md]## 按键

生活中的按钮可以说无处不在,遥控器、计算器、手机、电脑等各种电子设备上的按键,都是按键。按键是我们在这套元件中接触的第一个输入设备,具有按下(高)和松开(低)两种状态。默认状态为松开。

### 按下按键点亮LED灯

LED灯可以通过软件控制开关,那么可以不可以通过我们自己动手来控制呢?当然也是可以的,所以我们可以用按键模块来控制LED灯的亮灭。按一下按键,LED灯亮。放开按键,LED灯灭。

+ **硬件连接**

按键模块 —— D4  LED模块 —— D10 硬件连接完成过后如下图所示:
01.jpg
+ **程序编写**

硬件连接完成过后,我们开始编写程序,根据以上要求,我们这里学习一种新的程序模块,来完成这个功能,就是条件结构,通过条件结构来完成这个功能,程序如下图所示:
02.jpg
从上图中我们可以看到,**条件结构**的基本功能是一个条件选择,右侧红框内的就是条件,如果条件是真的,那么就执行条件下面的动作,否则就执行另外的动作。

将程序模块编译上传到Arduino主板里,按住按钮,LED模块灯就亮起来了,然后手一放开,LED灯就熄灭。


### 上拉输入

为什么我们需要加这么一句初始化程序模块呢?

03.jpg

当按键连接在4号IO口上时,按键没有被按下,相当于该引脚处于悬空的状态,这个状态是不确定的 ,而设置上拉输入,可以在默认情况下给4号IO口提供一个稳定的高电平状态,当按键被按下时候变为低电平状态,这样检测到的按键状态是一个明确的数值。


### 与或非

上节我们学习了按键控制LED灯,假如我们要让按键按下LED灭,按键松开时LED亮? 这时候我们会学到逻辑模块“与/或/非”。在计算机的世界里,所有东西都是用0和1 表达出来。里面的1= 真 = true , 0=假=false

了解下逻辑非(非0 = 1)(非1 = 0)(非真 = 假)(非假 = 真)

接下来修改程序:
04.jpg
这里我们判断读到4号引脚的状态,然后将状态反转一下,再判断反转的接口是否为真,如果是真,那么执行LED熄灭动作,否则(是假)执行LED点亮动作。

逻辑模块中还有逻辑“或”“与”“非”都是很重要的概念,下边我们学习下,在后面的课程中我们将陆续遇到逻辑模块中的内容。

+ **逻辑或**: a或者b  只要a b中有一个是1,那么这个运算返回的结果就是1;
+ **逻辑与**:a与b  只要a b中有一个是0,那么这个运算返回的结果就是0;


## 发散思维大课堂

那么有没有更简单的实现方式以上的功能呢?我们可以把数字输出管脚10直接设置为数字输入管脚4,这样的话,D4是什么样,直接就从D10输出了,也可以达到效果。如下图所示:
05.jpg [/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 14:39 , Processed in 0.075013 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表