春秋大仙 发表于 2018-9-13 12:40:49

升级版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号引脚相连接。





第二步:软件编程


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


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



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


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



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





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

看这个怎么样

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版,做了一点小改动就通过了

耐撕爸爸 发表于 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

赞赞赞赞
页: [1]
查看完整版本: 升级版microbit按钮台灯——每次按下按钮,led灯切换亮灭