“冰箱灯”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 1000px;" |- | ==概述== 600px|center 做一个冰箱灯:打开冰箱门时,能够自动开灯,...”)
 
 
(未显示2个用户的4个中间版本)
第5行: 第5行:
  
 
==概述==
 
==概述==
[[File:anywhere_refrigerator-light.jpg|600px|center]]
+
[[File:anywhere_refrigerator-light.jpg|400px|center]]
  
 
做一个冰箱灯:打开冰箱门时,能够自动开灯,关上冰箱门后,能够自动关灯。
 
做一个冰箱灯:打开冰箱门时,能够自动开灯,关上冰箱门后,能够自动关灯。
第61行: 第61行:
 
'''测试结果'''
 
'''测试结果'''
 
<br>
 
<br>
程序上传成功后,碰撞开关被一直按下时LED灯一直点灭(表示关闭冰箱门),松开碰撞开关时,LED灯始终亮(表示打开冰箱门)。
+
程序上传成功后,碰撞开关被一直按下时LED灯一直熄灭(表示关闭冰箱门),松开碰撞开关时,LED灯始终亮(表示打开冰箱门)。
 
<br>
 
<br>
 
*Q:有时候我忘了关冰箱门,冰箱里的所有东西就化了,有没有什么办法提醒一下呢?
 
*Q:有时候我忘了关冰箱门,冰箱里的所有东西就化了,有没有什么办法提醒一下呢?
*A:以增加一个提醒功能,如果冰箱门开启一段时间后,就发出声音自动报警。需要加入一个“计时”的功能,如果超过一定时间,门还没关,蜂鸣器就会响起来,开始报警!
+
*A:可以增加一个提醒功能,如果冰箱门开启一段时间后,就发出声音自动报警。需要加入一个“计时”的功能,如果超过一定时间,门还没关,蜂鸣器就会响起来,开始报警!
<br>
 
===认识新程序块===
 
'''“计时器开始”程序块'''
 
<br>
 
“计时器开始”程序块位于“美科科技>执行器”选项卡中。
 
[[File:mixly-millis-where.jpg|600px|center]]
 
'''“计时器开始”程序块说明'''
 
<br>
 
定义计时器“timer1”从这一刻开始计时。程序中可能用到不只一个计时器,所以为了防止混淆,每个计时器都要有不一样的名字。
 
[[File:mixly-millis-explain.jpg|600px|center]]
 
*'''计时程序块与延时程序块的区别'''
 
**计时程序块:程序一直在运行判断,计时不影响其他程序正常运行,可以同时做好几件事。如:该程序在计时的同时判断碰撞开关是不是处于松开状态,同时判断是否超时。
 
**延时程序块:系统运算会停止,程序一直在原地踏步,不能做任何事情。
 
'''“超时”程序块'''
 
<br>
 
“超时”程序块位于“美科科技>执行器” 选项卡中。
 
[[File:mixly-timeout-where.jpg|600px|center]]
 
'''“超时”程序块说明'''
 
<br>
 
如果从定时器“timer1”开始直到现在,时间超过2000毫秒,则判断条件成立,可执行下一条程序;如果未超过2000毫秒,则判断条件不成立,不能执行下一条程序。
 
[[File:mixly-timeout-explain.jpg|600px|center]]
 
'''“重复执行”程序块'''
 
<br>
 
“重复执行”程序块位于“美科科技>核心模块” 选项卡中。
 
[[File:mixly-while-where.jpg|600px|center]]
 
'''“重复执行”程序块说明'''
 
<br>
 
当条件成立时,重复执行内部程序;当条件不成立时,不执行内部程序,执行下一步程序。
 
[[File:mixly-while-explain.jpg|600px|center]]
 
'''“重复执行”和“如果”模块的区别'''
 
[[File:if-while-explain.jpg|600px|center]]
 
[[File:if-while-explain1.jpg|600px|center]]
 
 
<br>
 
<br>
 +
 +
===使用的程序块===
 +
*[[“计时器开始”程序块]]
 +
*[[“超时”程序块]]
 +
*[[“重复执行”程序块]]
 +
 
===编程思路===
 
===编程思路===
 
判断碰撞开关是否松开,如果碰撞开关是按下状态(关门),则关灯,蜂鸣器关闭;如果碰撞开关是松开状态(开门),则亮灯,超时后蜂鸣器报警。
 
判断碰撞开关是否松开,如果碰撞开关是按下状态(关门),则关灯,蜂鸣器关闭;如果碰撞开关是松开状态(开门),则亮灯,超时后蜂鸣器报警。
第114行: 第88行:
 
<br>
 
<br>
 
程序上传成功后,松开碰撞开关,超过4秒后,看蜂鸣器是否会报警呢?
 
程序上传成功后,松开碰撞开关,超过4秒后,看蜂鸣器是否会报警呢?
 +
[[File:anywhere_refrigerator-light.jpg|600px|center]]
 
==技术规范==
 
==技术规范==
 
*碰撞开关产品编号:MSDS11
 
*碰撞开关产品编号:MSDS11
第120行: 第95行:
  
 
==相关案例==
 
==相关案例==
*'''[[手电筒]]'''
+
*'''[[多功能手电筒]]'''
 
*'''[[门铃]]'''
 
*'''[[门铃]]'''
  

2017年5月18日 (四) 02:47的最新版本


概述

Anywhere refrigerator-light.jpg

做一个冰箱灯:打开冰箱门时,能够自动开灯,关上冰箱门后,能够自动关灯。

适合套件:mCookie102,mCookie202,mCookie302,IBC


模块清单

模块

模块 数量 功能
mCookie-Core 1 核心板
mCookie-USBTTL 1 程序下载模块
mCookie-Hub 1 传感器转接板
Crash 1 碰撞开关
LED 1 单色灯

其他设备

  • USB数据线*1
  • 传感器连接线*1
  • 传感器外壳*1
  • 乐高或其它固定结构
Anywhere trefrigerator-light-module.jpg


模块搭建

Anywhere refrigerator-light-module—step.jpg
  • 将模块和传感器组装起来:
    • 将红色的核心模块,USB上传模块与绿色的扩展模块吸在一起;
    • 将碰撞开关连接在Hub的6/7管脚;
    • 将红色LED灯连接在Hub的4/5管脚;
    • 将USB连接线一端插入USB上传模块,另一端连接电脑;


编程

编程思路

冰箱门打开时,碰撞开关没有被冰箱门挤压(处于松开状态), LED灯点亮;冰箱门关闭时,碰撞开关被冰箱门挤压(碰撞开关处于按下的状态),LED灯熄灭。

开始编程

1、开门时,碰撞开关“松开”,LED灯点亮
碰撞开关管脚号改为6,状态为松开;数字输出管脚号改为4,状态设为高;

Mixly-ctrl-ttrefrigerator-code1.jpg

2、关门时,碰撞开关“按下”,LED灯熄灭
碰撞开关管脚号改为6,状态为按下;数字输出管脚号改为4,状态设为低;

Mixly-ctrl-ttrefrigerator-code2.jpg

测试结果
程序上传成功后,碰撞开关被一直按下时LED灯一直熄灭(表示关闭冰箱门),松开碰撞开关时,LED灯始终亮(表示打开冰箱门)。

  • Q:有时候我忘了关冰箱门,冰箱里的所有东西就化了,有没有什么办法提醒一下呢?
  • A:可以增加一个提醒功能,如果冰箱门开启一段时间后,就发出声音自动报警。需要加入一个“计时”的功能,如果超过一定时间,门还没关,蜂鸣器就会响起来,开始报警!


使用的程序块

编程思路

判断碰撞开关是否松开,如果碰撞开关是按下状态(关门),则关灯,蜂鸣器关闭;如果碰撞开关是松开状态(开门),则亮灯,超时后蜂鸣器报警。

Mixly-ctrl-timeout-light.jpg

开始编程

1、冰箱门打开,6号开关松开,LED灯点亮

Mixly-ctrl-timeout-light-code1.jpg

2、冰箱门打开超时后,蜂鸣器开始报警
定义计时器timer1,开始计时,当碰撞开关松开后,则重复执行内部程序(判断定时器“timer1”计时时间是否超过4000毫秒,如果超过的话,开启蜂鸣器报警),直到碰撞开关被按下后(关门)才结束重复。

Mixly-ctrl-timeout-light-code2.jpg

3、冰箱门关上后,LED灯熄灭,蜂鸣器关闭

Mixly-ctrl-timeout-light-code3.jpg

测试结果
程序上传成功后,松开碰撞开关,超过4秒后,看蜂鸣器是否会报警呢?

Anywhere refrigerator-light.jpg

技术规范

  • 碰撞开关产品编号:MSDS11
  • 数字信号输入传感器。
  • 详细参考Sensor-Crash/zh

相关案例

Q&A