micro:bit造物粒子(基于Mind+)05— 变速风扇-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1846|回复: 0

micro:bit造物粒子(基于Mind+)05— 变速风扇

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

micro:bit造物粒子(基于Mind+)05— 变速风扇

星际飞船在宇宙中随着惯性飘荡着,看着舷窗外明暗交替的灯光。
船舱内的温度也慢慢升高了起来,麦克的额头上都渗出了汗珠。麦克擦了一把汗说:“我们来做个小风扇凉快凉快吧。”micro:bit立刻表示赞成。
但是两人却有点无从下手,突然麦克灵机一动,想到了小米老师上节课所教给同学们的内容,呼吸灯的明暗变化不就是一个风扇的变速原理吗。于是,麦克和micro:bit开始了小风扇的制作。

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

与家用风扇的原理相似,内部有马达,扇叶可以旋转,转速可以调整。
1× 按钮模块

1× 旋钮模块

1× MicroUSB 连接线
任务一:按钮风扇
实现功能
当按下按钮的时候,外接风扇转动,松开按钮以后,风扇停止转动。


硬件连接
把按钮模块(旋钮模块)接到扩展板P0号接口上;

把风扇模块接到扩展板P1号接口上。
风扇模块的使用
硬件连接时,我们将micro:bit与电脑相连接,进行程序调试和下载;

实验中,由于风扇或舵机等传感器的耗电量较大,所以,需要外接电源(或电脑USB口)独立供电。外接电源接在扩展板的外接电源接口VIN。

通过检测P0号引脚的值判断按钮是否被按下。当按钮被按下时,设置风扇连接引脚为高电平,风扇转动,当松开按钮时,设置风扇连接引脚为低电平,风扇停止转动。

STEP1:按钮模块属于数字输入,单击“microbit”模块,选择“读取数字引脚P0”指令,并拖到脚本区。

STEP2:“运算符”模块中的“ =  ”可以判断按钮是否被按下,如果按钮值为“1”成立,说明按钮被按下,否则,按钮没有被按下。将“数字读取引脚P0”嵌套在等式中

STEP3:条件判断——怎样判断按钮是否按下?在“控制”模块中找到“如果那么执行,否则执行”指令。拖入脚本区的循环模块中。

STEP4:将“ =  ”左右成立的条件指令嵌套到判断指令“如果那么执行,否则执行”中。

STEP5:“microbit”模块中找到“设置数字引脚P0 输出 低电平”指令,将指令修改成“设置数字引脚P1 输出 高电平”和“设置数字引脚P1 输出 低电平”,分别放在“那么执行”和“否则执行”下面,当按钮按下之后,就会执行这个指令让风扇转起来。松开按钮的时候,风扇停止转动。

任务二:变速风扇
实现功能
当旋钮旋至较大值时,micro:bit控制风扇转速增大;当旋钮旋至较小值时,micro:bit控制风扇转速变小。旋钮的旋转值不同,对应的风扇转速不同。
硬件连接
将任务一按钮风扇用到的按钮模块换成旋钮模块。
编写程序
通过读取旋钮的值,来决定风扇转动的速度。旋钮的值为模拟值,取值范围在0-1023之间,将其值映射为风扇的速度值。
STEP1:旋钮连接板子的P0号引脚,单击“microbit”模块,选择“读取模拟引脚P0”指令,并拖到脚本区。

STEP2:风扇的速度由P0对应的旋钮值决定,将P0的值赋值给P1,可以控制风扇速度的改变。Microbit板的读取模拟引脚(旋钮)的值范围是0-1023,比输出模拟(风扇)的范围0-255大,旋钮的参数范围远远超过了输出范围,除了可以使用“ /  (除号)”模块缩小范围,也可以使用“映射”指令,将0-1023的范围映射缩小到0-255。

将“运算符”模块中的“映射 从__到__”拖入脚本区,将“读取模拟引脚P0”放在“映射”两字的右侧框里,将数值改为“从 [0,1023] 到 [0,255]”。
STEP3:将“microbit”模块中的“设置模拟引脚P0 输出 ”拖入脚本区的“循环执行”中,将P0改为P1。并两个指令嵌套在一起。
能力提升
旋钮和按钮只能控制小等和风扇吗,能不能控制其他的硬件呢?编个程序旋钮或者按钮,控制点阵屏试试看吧。

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

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

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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