2019-6-4 14:06:20 [显示全部楼层]
58723浏览
查看: 58723|回复: 34

[教程] 【Mind+】Arduino Uno入门 项目三 神奇的按钮

[复制链接]
【Mind+】Arduino Uno入门 项目三 神奇的按钮
-DFRobot官方出品

上一篇:【Mind+】Arduino Uno入门教程02  S.O.S.
下一篇:【Mind+】Arduino Uno入门教程04  简易入侵检测仪

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

*项目示例

      可以通过以下三个小任务进行实践:

      ■ 任务一:让按钮简单工作
      ■ 任务二:简易延时灯
      ■ 任务三:使用按钮模拟开关

任务一:让按钮简单工作

1. 实现功能

      按下按钮灯亮,松开按钮灯灭。

2. 硬件连接

      按钮à3;LEDà10。注意插线时的颜色对应。
【Mind+】Arduino Uno入门  项目三  神奇的按钮图1
3. 程序编写

      首先是实现功能的逻辑,如下图:

【Mind+】Arduino Uno入门  项目三  神奇的按钮图2
      输入设备向控制设备发送信号,控制设备对其进行处理,并控制输出设备进行相应的输出工作。

      当按钮被按下时,向 3 号管脚输入高电平,此时 10 号管脚应输出高电平;当按钮被抬起时,向 3 号管脚输入低电平,此时 10 号管脚应输出低电平

      程序如下图所示:
【Mind+】Arduino Uno入门  项目三  神奇的按钮图3

      数字输入:有两种状态,即“高”和“低”。按钮按下为高,抬起为低。

      支持数字输入的管脚为:2~13,A0~A5(其实 0 号和 1 号管脚也支持数字输入,但因为负责串口通信功能,一般情况下不使用)。

任务二:简易延时灯

1. 实现功能
      按下按钮灯亮,3 秒钟后灯灭。

2. 程序编写:
【Mind+】Arduino Uno入门  项目三  神奇的按钮图4

      这里我们看到了一个新的结构——条件结构。它是如何应用的呢?请看下图:

【Mind+】Arduino Uno入门  项目三  神奇的按钮图5

      如果当前状态符合判断条件的要求,判断模块内(黑色边框内的)的程序将会被执行。如果不符合,则那部分代码将会被跳过,直接执行接下来红色框中的程序。

任务三:使用按钮模拟开关

1. 实现功能

      每次按下,LED 灯切换亮灭。

2. 程序编写:
【Mind+】Arduino Uno入门  项目三  神奇的按钮图6

      这段程序中,我们使用了定义变量的模块。变量的名称是i。设置i的值为0指令,在整个程序运行过程中只执行一次,相当于对变量i的值初始化为0。 程序中等待0.5秒用于消除按键抖动。

知识点小结

元件
  • 按钮

Mind+ 程序模块
  • 数字输入
  • 条件判断

EVE  高级技匠
 楼主|

发表于 2019-6-19 11:48:01

驴友花雕 发表于 2019-6-6 11:33
原样学您的

上传后,13脚LED半秒亮半秒灭,按下3按键灭,松开恢复;第二次按下亮,松开恢复......

老师,您好!我的理解具体如下,希望可以解决您的问题。用如图所示的黄色按钮连接3号引脚后,可以通过串口打印读取数字引脚3,可以发现,当按下黄色按钮时,读取数字引脚3的值为1。当黄色按钮弹起时,读取数组引脚3的值为0。在这里会发现,一直按就会一直输出1。所以,一般情况下,会在后面加等待指令,等待0.5秒比较接近按键的时间。
【Mind+】Arduino Uno入门  项目三  神奇的按钮图2
【Mind+】Arduino Uno入门  项目三  神奇的按钮图1
判断语句中读取数字引脚3指令,默认的含义是判断数字引脚3是否为1,也就是判断按钮是否按下,如果按下,则执行下面的语句。可通过下图语句尝试一下。
【Mind+】Arduino Uno入门  项目三  神奇的按钮图3

本案例想实现的效果是,刚开始小灯不亮,按下按钮后,小灯亮。再按一次按钮,小灯灭。这里可以通过变量来改变状态,比如定义变量i,i=0时,灯不亮。i=1时,灯亮。一开始灯不亮。当按下按钮时,灯亮,令i=1。当再次按下按钮时,灯灭,也就是令i=0。一直循环进行。也就是,一开始的时候,i=0。当按下按钮时,如果i=0,则令i=1,灯亮。如果i=1,则令i=0,灯灭。一直循环判断。

大体上就是这个思路,希望可以解决您的问题。


回复

使用道具 举报

EVE  高级技匠
 楼主|

发表于 2021-5-21 09:21:29

小军军 发表于 2021-5-17 16:30
老师,任务二简易延时灯,确定程序就是这样?如果 “读取数字引脚3 ”那么执行,就可以了?不用加上引脚3等 ...

是的,可以加上等于也可以不加,因为如果语句判断的是逻辑值,高低电平的01值也可以理解为逻辑值,判断结果的成立、不成立也是逻辑值
回复

使用道具 举报

驴友花雕  中级技神

发表于 2020-5-5 18:14:50

DFBmjf 发表于 2020-5-5 17:28
请教下大神,DF蓝牙模块BLE-Link怎么与手机配对?

刚开贴,还没开始做实验呢

MicroPython动手做(23)——掌控板之WiFi与蓝牙
https://mc.dfrobot.com.cn/thread-305200-1-1.html#pid455418
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-4 21:44:42

老师好,我在向您学习,任务三,使用按钮模拟开关为何通不过呢?
回复

使用道具 举报

EVE  高级技匠
 楼主|

发表于 2019-6-5 16:34:50

驴友花雕 发表于 2019-6-4 21:44
老师好,我在向您学习,任务三,使用按钮模拟开关为何通不过呢?

老师,您的具体问题是?
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-6 11:27:16

老师好,我是新人,刚开始学习Arduino不久,也买了Vortex
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-6 11:33:40



原样学您的

上传后,13脚LED半秒亮半秒灭,按下3按键灭,松开恢复;第二次按下亮,松开恢复......

原理还不太懂,特向您请教,谢谢老师


360截图20190606112330548.jpg
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-11 12:00:35

谢谢老师,改动了一下,可以了
【Mind+】Arduino Uno入门  项目三  神奇的按钮图1
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-11 12:04:25

0N97Or1c 发表于 2019-6-5 16:34
老师,您的具体问题是?

参考您的任务一的程序,对读取按键限为等于0,才解决问题的,谢谢老师
回复

使用道具 举报

275337919  学徒

发表于 2019-6-17 20:57:54

谢谢
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-20 06:38:10

0N97Or1c 发表于 2019-6-19 11:48
老师,您好!我的理解具体如下,希望可以解决您的问题。用如图所示的黄色按钮连接3号引脚后,可以通过串 ...

谢谢老师,麻烦这个案例的完整程序,我来学习一下
回复

使用道具 举报

 学徒

发表于 2019-6-30 13:16:33

驴友花雕 发表于 2019-6-4 21:44
老师好,我在向您学习,任务三,使用按钮模拟开关为何通不过呢?

可以完成,我试验过
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-30 19:08:16

钟 发表于 2019-6-30 13:16
可以完成,我试验过

我后来改动了一下,也通过了
回复

使用道具 举报

gray6666  初级技神

发表于 2019-7-4 10:12:00

很有意思,赞一个
回复

使用道具 举报

Rae  学徒

发表于 2019-7-17 09:21:07

太好了
回复

使用道具 举报

wbin2019  学徒

发表于 2019-11-4 10:27:07

A0-A5不是模拟接口吗,怎么也能数字输入?

纠错

纠错
回复

使用道具 举报

DFBmjf  学徒

发表于 2020-4-30 11:47:00

驴友花雕 发表于 2019-6-4 21:44
老师好,我在向您学习,任务三,使用按钮模拟开关为何通不过呢?

我的可以,任务三按教程一次通过了!
回复

使用道具 举报

驴友花雕  中级技神

发表于 2020-4-30 12:02:13

DFBmjf 发表于 2020-4-30 11:47
我的可以,任务三按教程一次通过了!

你真棒,加油
回复

使用道具 举报

DFBmjf  学徒

发表于 2020-5-5 17:28:35


请教下大神,DF蓝牙模块BLE-Link怎么与手机配对?
回复

使用道具 举报

鲨首  学徒

发表于 2020-5-17 22:30:13

不知道为什么,我的电路和程序必须要串联一个电阻才能运行。去掉电阻,LED就会频闪。版主能帮忙看下吗?

程序图

程序图

示意图

示意图
回复

使用道具 举报

DFrJ5KYVQaH  中级技匠

发表于 2020-5-18 21:39:07

不错,学了两课了
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail