“DIY小台灯”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
模块搭建
模块
 
(未显示2个用户的4个中间版本)
第20行: 第20行:
 
|[[mCookie-Core/zh|mCookie-Core]]||1||核心板
 
|[[mCookie-Core/zh|mCookie-Core]]||1||核心板
 
|-
 
|-
|[[mCookie-USBTTL|mCookie-USBTTL]]||1||程序下载模块
+
|[[mCookie-USBttlC|mCookie-USBTTL-C]]||1||程序下载模块
 
|-
 
|-
 
|[[mCookie-Hub/zh|mCookie-Hub]]||1||传感器转接板
 
|[[mCookie-Hub/zh|mCookie-Hub]]||1||传感器转接板
第47行: 第47行:
  
 
==编程==
 
==编程==
===认识新程序块===
+
===使用的程序块===
 +
*[[“等待”程序块]]
 +
*[[“碰撞开关”程序块]]
  
'''"等待"程序块'''
 
<br>
 
"等待"程序块位于“美科科技>核心模块”选项卡中。
 
[[File:mixly-while-where.jpg|600px|center]]
 
'''"等待"程序块说明'''
 
<br>
 
满足放置条件时,执行下一步程序,未满足条件时,程序原地踏步。
 
[[File:mixly-while-where-explain.jpg|600px|center]]
 
'''"碰撞开关"程序块'''
 
<br>
 
"碰撞开关"程序块位于“美科科技>传感器”选项卡中。
 
[[File:mixly-crash-where.jpg|600px|center]]
 
'''“碰撞”开关程序块说明'''
 
<br>
 
“碰撞开关”程序块在选择“按下”状态时,按下碰撞开关条件成立,选择“松开”状态时,未按下碰撞开关条件成立。
 
[[File:mixly-crash-explain.jpg|600px|center]]
 
 
===编程思路===
 
===编程思路===
 
按下碰撞开关,LED灯点亮;再按一下碰撞开关,LED灯熄灭。
 
按下碰撞开关,LED灯点亮;再按一下碰撞开关,LED灯熄灭。
第97行: 第83行:
 
Q:感觉开关还是不受控制?
 
Q:感觉开关还是不受控制?
 
<br>
 
<br>
A:这是因为“碰撞开关”属于机械按键,在按下或松开的一瞬间,内部金属片会多次震动,所以程序中会检测到碰撞开关被多次按下和松开,程序也会不断循环下去,起始在这个过程中LED灯已经点亮熄灭很多次,致死肉眼分辨不出而已。
+
A:这是因为“碰撞开关”属于机械按键,在按下或松开的一瞬间,内部金属片会多次震动,所以程序中会检测到碰撞开关被多次按下和松开,程序也会不断循环下去,起始在这个过程中LED灯已经点亮熄灭很多次,只是肉眼分辨不出而已。
 
<br>
 
<br>
 
Q:那有什么办法可以让开关稳定控制吗?
 
Q:那有什么办法可以让开关稳定控制吗?
第127行: 第113行:
  
 
==相关案例==
 
==相关案例==
*'''[[手电筒]]'''
+
*'''[[多功能手电筒]]'''
 
*'''[[门铃]]'''
 
*'''[[门铃]]'''
 
*'''[[音乐画]]'''
 
*'''[[音乐画]]'''

2017年6月13日 (二) 02:32的最新版本


概述

Anywhere table-lamp.jpg

制作一个小台灯,学会用开关控制台灯的亮灭。

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


模块清单

模块

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

其他设备

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


模块搭建

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


编程

使用的程序块

编程思路

按下碰撞开关,LED灯点亮;再按一下碰撞开关,LED灯熄灭。

Mixly-ctrl-table-lamp.jpg

开始编程

1、按下碰撞开关,LED灯点亮
“碰撞开关”程序块管脚号设为4,状态设为按下;“数字输出”程序块管脚号设为6,状态设为高;即等待碰撞开关按下后,LED灯点亮。

Mixly-ctrl-table-lamp-code1.jpg

2、按下碰撞开关,LED灯熄灭
“碰撞开关”程序块管脚号设为4,状态设为按下;“数字输出”程序块管脚号设为6,状态设为低;即等待碰撞开关按下后,LED灯熄灭。

Mixly-ctrl-table-lamp-code2.jpg

3、 测试结果:
看看是不是像我们预想的那样:按一下开关,灯点亮,再按一下开关,灯熄灭,如此重复循环。

Q:为什么我感觉开关有时很灵活,有时又不受控制呢?
A:这是因为核心模块的思考速度非常快,当你按下碰撞开关的一瞬间,程序判断开关一直在被按下,因此就不断循环了成百上千次,在那一瞬间,LED灯其实点亮熄灭了很多次,只是人眼无法分辨而已,所以你就会感觉它不受控制。
Q:哦,明白了,是不是我将程序设置成等待碰撞开关按下,再等待碰撞开关松开,就可以了呢?
A:那可以试一试!
按下碰撞开关,再松开后,让LED灯点亮。按下碰撞开关,再松开后,让LED灯熄灭。修改“碰撞开关”和“数字输出”程序块的参数。

Mixly-ctrl-table-lamp-code3.jpg



Q:感觉开关还是不受控制?
A:这是因为“碰撞开关”属于机械按键,在按下或松开的一瞬间,内部金属片会多次震动,所以程序中会检测到碰撞开关被多次按下和松开,程序也会不断循环下去,起始在这个过程中LED灯已经点亮熄灭很多次,只是肉眼分辨不出而已。
Q:那有什么办法可以让开关稳定控制吗?
A:其实,我们只需要加上一个“延时”功能就可以解决这个机械抖动的问题,在按下开关的时候,延时100毫秒(让程序暂停运行100毫秒),用于等待碰撞开关内部震动平息,消除碰撞开关的频繁抖动。

编程思路:
开关每次按下和松开时,都增加延时程序块,用于等待碰撞开关内部震动平息,让开关能稳定控制LED灯。

Mixly-ctrl1-table-lamp.jpg

开始编程
1、开关按下和松开时都增加延时,等待碰撞开关内部震动平息,按下再松开开关后,LED灯点亮。

Mixly-ctrl4-table-lamp-code4.jpg

2、开关按下和松开时都增加延时,等待碰撞开关内部震动平息,按下再松开开关后,LED灯熄灭。

Mixly-ctrl4-table-lamp-code5.jpg

测试结果:
按下再松开碰撞开关,LED灯点亮;再按下并松开碰撞开关,LED灯熄灭,如此循环,不断点亮熄灭。这样我们就可以用碰撞开关稳定的控制小台灯的亮灭啦!
自己动手,用乐高搭建一个小台灯,将开关和LED灯放置在合适的位置,比一比谁的台灯最好看。

Anywhere table-lamp.jpg

技术规范

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

相关案例

Q&A