20530浏览
查看: 20530|回复: 18

[项目分享] 升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭

[复制链接]
我们知道,通过microbit扩展板连接按钮及led灯模块,可以通过简单的程序实现“按钮按下去灯亮、按钮抬起后灯灭”的效果。可是我们现实中的台灯,是不需要持续按着按钮的,按一下灯就会保持亮的状态,再按一下灯灭。那么今天,我来分享一下在没有自锁开关的情况下,如何通过mind+完成“每次按下按钮,led灯切换亮灭”的程序设计。

【设计目标】
1. 每次按下按钮,led灯切换亮灭。

【器件选择】
Microbit主控板;(购买链接)
Microbit扩展版;(购买链接
数据线;按钮;led小灯;

【编程软件】
Mind+ V1.1.3:下载链接:https://www.mindplus.cc/
【设计步骤】

第一步:硬件连接。
通过USB连接线将Microbit和电脑相连接,将按钮与Microbit的P0号引脚相连接,将led小灯与Microbit的P1号引脚相连接。
升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭图1



第二步:软件编程


1,先搭建出基础架构:判断按钮是否被按下,按下P1输出高电平,否则低电平。

升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭图2

2,要实现每次按下按钮,灯切换亮灭,就需要借助变量,通过变量保存按钮按下的状态。所以我们设置一个变量,并命名“当前状态”。

升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭图3


3,设置变量“当前状态”的值为0,然后在判断按钮是否按下后,再加一步判断“当前状态”的值,如果为0,P1输出高电平,并改变变量值。

升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭图4

4,测试后发现,因为按钮的抖动效应,不能完美的实现功能。可通过等待指令实现按钮消抖,程序就设计完成啦。

升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭图5


实现功能的重点就在于变量模块的灵活使用,大家都试试哈~






hnyzcj  版主

发表于 2018-9-14 06:19:18

搞定了,哈哈哈哈
回复

使用道具 举报

Leven  初级技匠

发表于 2018-9-15 15:28:10

下面if else中再加上wait,就完美了
回复

使用道具 举报

gada888  版主

发表于 2018-9-19 17:32:25

不错的教程
回复

使用道具 举报

yinzjchina  学徒

发表于 2019-2-9 15:09:25

有一个问题,长按会闪
回复

使用道具 举报

冬天  学徒

发表于 2019-4-2 15:33:49

你好,为什么我用Arduino板,LED灯只是闪烁,不能控制呢
回复

使用道具 举报

冬天  学徒

发表于 2019-4-4 07:24:24

hnyzcj 发表于 2018-9-14 06:19
搞定了,哈哈哈哈

你好,我按照上面的图,做完程序,按键并不能控制灯的开关,灯只是一闪一闪的,为什么能。你做完能按一下松开,灯亮,再按一下松开灯灭吗
回复

使用道具 举报

春秋大仙  高级技师
 楼主|

发表于 2019-4-8 12:23:04

冬天 发表于 2019-4-2 15:33
你好,为什么我用Arduino板,LED灯只是闪烁,不能控制呢

程序应该都是一样的,用什么板子都是可以的,您可以再检查以下程序,端口和变量设置是否正确
回复

使用道具 举报

春秋大仙  高级技师
 楼主|

发表于 2019-4-8 13:12:45

yinzjchina 发表于 2019-2-9 15:09
有一个问题,长按会闪

嗯嗯,其实应该在消抖等待时间那里,把等待换成“等待直到非读取数字引脚P0”,就可以了。
回复

使用道具 举报

于成  学徒

发表于 2019-4-10 18:32:12

看这个怎么样
截图201904101831599654.png
回复

使用道具 举报

eagler88  见习技师

发表于 2019-6-10 18:38:31

老师好,按您的示例,led灯只是闪烁(频率大概是0.2秒),2脚按键不能控制.......
回复

使用道具 举报

驴友花雕  中级技神

发表于 2019-6-11 12:07:46

春秋大仙 发表于 2019-4-8 12:23
程序应该都是一样的,用什么板子都是可以的,您可以再检查以下程序,端口和变量设置是否正确 ...

老师好!我是1.5.5版,做了一点小改动就通过了
升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭图1
回复

使用道具 举报

耐撕爸爸  学徒

发表于 2020-2-10 00:34:06

这个帖子算是把难以理解的问题说明白了,尤其是消除抖动使用了等到直到语句
回复

使用道具 举报

GD  见习技师

发表于 2020-5-19 14:48:28

春秋大仙 发表于 2019-4-8 12:23
程序应该都是一样的,用什么板子都是可以的,您可以再检查以下程序,端口和变量设置是否正确 ...

我也是一样的效果,请问您解决了吗
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-4-2 22:36:30

666666666666
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-4-4 22:51:02

哈哈哈哈
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-4-4 22:52:52

呵呵呵呵
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-4-4 22:53:55

厉害厉害
回复

使用道具 举报

赤星三春牛!  初级技神

发表于 2022-4-4 22:55:06

赞赞赞赞
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail