micro:bit造物粒子(基于Mind+)06— 电子蜡烛-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1363|回复: 0

micro:bit造物粒子(基于Mind+)06— 电子蜡烛

[复制链接]
发表于 2019-11-18 14:58 | 显示全部楼层 |阅读模式
本帖最后由 dfrobot 于 2019-11-18 15:52 编辑

micro:bit造物粒子(基于Mind+)06— 电子蜡烛

麦克的故事
经历了一番太空历险之后,麦克和他的小伙伴终于有惊无险地回到了地球。
有一天,麦克看见新闻上关于温室效应的报道:人类的很多活动都可能造成碳排放,比如普通百姓简单的烧火做饭都能造成碳排放,很多物体被火烧后的废气都会产生碳排放。麦克深受启发要从小事做起减少碳排放,保护环境。
转眼间到了麦克生日这天,麦克突发奇想:能不能来做一个电子蜡烛,既特别还能保护环境呢?想着,麦克就开始倒腾起来:做一个能用声音吹灭的电子蜡烛。

所需元件
1× micro:bit主控板
1× micro:bit扩展板
1× LED灯模块

1×  声音传感器模块

能够通过它来感知外界声音的强弱,编写代码能实现由声音强弱控制LED小灯的亮灭。
1×  MicroUSB 连接线
实现功能
  当声音强度模拟值小于80的时候,板载小灯显示数字“1”,表示声音较小,强度为1级;否则,声音强度模拟值大于80的时候,板载小灯显示数字“2”,表示声音较大,强度为2级。

【小知识】
想一想,是不是有点像我们之前做过的按钮风扇呢?在这里我们将再次用到如果...则...(否则)...的条件判断语句。

硬件连接
把声音传感器模块接到扩展板P0号接口上;把LED灯模块接到扩展板P1号接口上。
编写程序
要想制作电子蜡烛,首先要认识声音传感器。我们可以将声音传感器与micro:bit板连接,通过microbit扩展的“显示”来观察声音强弱程度。

STEP1:单击指令区最下面的“micro:bit”,将“控制”代码模块中的条件语句“如果--否则”拖动至脚本区,将“运算符”中的“<”拖动至脚本区。条件语句代码模块的功能在于设定触发显示板载数字的条件,如果满足右边逻辑判断语句。则执行在“如果”右侧的代码语句,反之,如果不满足逻辑判断语句,则执行的是在“否则”右侧的代码。

   


STEP2:指令区的"读取模拟引脚P0" 能够读取P0引脚连接的声音传感器的模拟信号数值,模拟数值范围在0—1023之间。

STEP3:设定“声音强度探测”的实现程序。
逻辑指令中的“<”可以判断声音强度的模拟值是否达到设定的标准。
如下图,表示模拟读取引脚P0的数值“<80”成立的时候,即声音强度为1级的时候,板载小灯显示数字“1”,否则,模拟读取引脚P0的数值“>=80”时,声音强度为2级,板载小灯显示数字“2”。在“否则”代码之后,可以增加“等待1秒”,防止数字闪烁。


对着声音传感器说话或者吹气,看你的板载LED点阵会不会显示相应的数字。
如果你已经很用力说话或吹气了却还是不能显示相应的数字,该怎么调节临界值80这个强度呢?改为更大还是更小?

任务二:电子蜡烛实现功能
当在Mind+软件上编写程序后,烧录至micro:bit小板子,通过声音传感器控制LED小灯的亮灭,就像过生日的时候吹蜡烛一样,对着声音传感器吹气,当声音达到一定强度的时候,比如之前设定的2级强度时,小灯就熄灭。
编写程序
STEP1:编程过程中,通过设置micro:bit的P0引脚值(连接声音传感器的引脚)来控制小灯的亮暗。
当声音达到设定的强度的时候,小灯熄灭;反之,当声音未达到设定强度时候,小灯保持亮起的状态。将如图所示的判断语句代码模块指令拖动入“循环执行”中。


STEP2:没有吹气时,小灯呈现亮的状态;吹气时,小灯呈现灭的状态。当小灯呈现亮的状态时,应向当前引脚输出“高电平”;当小灯呈现灭的状态时,应向当前引脚输出“低电平”。使用“设置数字引脚P0输出”这个模块,由于当前小灯连接的是P1引脚,将P0修改为P1,拖至脚本区。

STEP3:设定“电子蜡烛”的实现程序。
当声音传感器模拟值小于设定值80的时候,小灯保持亮起的状态,反之,轻轻一吹,声音强度大于80时,小灯将保持2秒的熄灭状态。


微信图片_20191118115539.png
▲mind+官网:http://www.mindplus.cc

Mind+最早是由DFRobot公司于2013年推出的图形化编程软件,能够让不懂编程的艺术家们通过几分钟的学习即可控制Arduino开源硬件,从而拓宽一些新的思维方式。

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

本版积分规则

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

GMT+8, 2024-11-28 07:35 , Processed in 0.078918 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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