“DIY小台灯”的版本间的差异
(创建页面,内容为“{| style="width: 1000px;" |- | ==概述== 600px|center 制作一个小台灯,学会用开关控制台灯的亮灭。 适合套...”) |
Zhangfengfeng(讨论 | 贡献) (→模块) |
||
(未显示2个用户的8个中间版本) | |||
第20行: | 第20行: | ||
|[[mCookie-Core/zh|mCookie-Core]]||1||核心板 | |[[mCookie-Core/zh|mCookie-Core]]||1||核心板 | ||
|- | |- | ||
− | |[[mCookie- | + | |[[mCookie-USBttlC|mCookie-USBTTL-C]]||1||程序下载模块 |
|- | |- | ||
|[[mCookie-Hub/zh|mCookie-Hub]]||1||传感器转接板 | |[[mCookie-Hub/zh|mCookie-Hub]]||1||传感器转接板 | ||
第38行: | 第38行: | ||
==模块搭建== | ==模块搭建== | ||
− | [[File:anywhere_table-lamp-module—step.jpg| | + | [[File:anywhere_table-lamp-module—step.jpg|600px|center]] |
*将模块和传感器组装起来: | *将模块和传感器组装起来: | ||
**将红色的核心模块,USB上传模块与绿色的扩展模块吸在一起; | **将红色的核心模块,USB上传模块与绿色的扩展模块吸在一起; | ||
− | ** | + | **将红色LED灯连接在Hub的6/7管脚; |
**将碰撞开关连接在Hub的4/5管脚; | **将碰撞开关连接在Hub的4/5管脚; | ||
− | ** | + | **将USB连接线一端插入USB上传模块,另一端连接电脑; |
<br> | <br> | ||
+ | |||
==编程== | ==编程== | ||
− | === | + | ===使用的程序块=== |
+ | *[[“等待”程序块]] | ||
+ | *[[“碰撞开关”程序块]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===编程思路=== | ===编程思路=== | ||
按下碰撞开关,LED灯点亮;再按一下碰撞开关,LED灯熄灭。 | 按下碰撞开关,LED灯点亮;再按一下碰撞开关,LED灯熄灭。 | ||
第76行: | 第63行: | ||
“碰撞开关”程序块管脚号设为4,状态设为按下;“数字输出”程序块管脚号设为6,状态设为低;即等待碰撞开关按下后,LED灯熄灭。 | “碰撞开关”程序块管脚号设为4,状态设为按下;“数字输出”程序块管脚号设为6,状态设为低;即等待碰撞开关按下后,LED灯熄灭。 | ||
[[File:mixly-ctrl-table-lamp-code2.jpg|600px|center]] | [[File:mixly-ctrl-table-lamp-code2.jpg|600px|center]] | ||
+ | 3、 | ||
'''测试结果:''' | '''测试结果:''' | ||
<br> | <br> | ||
第82行: | 第70行: | ||
<br> | <br> | ||
Q:为什么我感觉开关有时很灵活,有时又不受控制呢? | Q:为什么我感觉开关有时很灵活,有时又不受控制呢? | ||
+ | <br> | ||
A:这是因为核心模块的思考速度非常快,当你按下碰撞开关的一瞬间,程序判断开关一直在被按下,因此就不断循环了成百上千次,在那一瞬间,LED灯其实点亮熄灭了很多次,只是人眼无法分辨而已,所以你就会感觉它不受控制。 | A:这是因为核心模块的思考速度非常快,当你按下碰撞开关的一瞬间,程序判断开关一直在被按下,因此就不断循环了成百上千次,在那一瞬间,LED灯其实点亮熄灭了很多次,只是人眼无法分辨而已,所以你就会感觉它不受控制。 | ||
+ | <br> | ||
Q:哦,明白了,是不是我将程序设置成等待碰撞开关按下,再等待碰撞开关松开,就可以了呢? | Q:哦,明白了,是不是我将程序设置成等待碰撞开关按下,再等待碰撞开关松开,就可以了呢? | ||
+ | <br> | ||
A:那可以试一试! | A:那可以试一试! | ||
<br> | <br> | ||
第91行: | 第82行: | ||
<br> | <br> | ||
Q:感觉开关还是不受控制? | Q:感觉开关还是不受控制? | ||
− | + | <br> | |
+ | A:这是因为“碰撞开关”属于机械按键,在按下或松开的一瞬间,内部金属片会多次震动,所以程序中会检测到碰撞开关被多次按下和松开,程序也会不断循环下去,起始在这个过程中LED灯已经点亮熄灭很多次,只是肉眼分辨不出而已。 | ||
+ | <br> | ||
Q:那有什么办法可以让开关稳定控制吗? | Q:那有什么办法可以让开关稳定控制吗? | ||
+ | <br> | ||
A:其实,我们只需要加上一个“延时”功能就可以解决这个机械抖动的问题,在按下开关的时候,延时100毫秒(让程序暂停运行100毫秒),用于等待碰撞开关内部震动平息,消除碰撞开关的频繁抖动。 | A:其实,我们只需要加上一个“延时”功能就可以解决这个机械抖动的问题,在按下开关的时候,延时100毫秒(让程序暂停运行100毫秒),用于等待碰撞开关内部震动平息,消除碰撞开关的频繁抖动。 | ||
+ | <br> | ||
'''编程思路:''' | '''编程思路:''' | ||
+ | <br> | ||
开关每次按下和松开时,都增加延时程序块,用于等待碰撞开关内部震动平息,让开关能稳定控制LED灯。 | 开关每次按下和松开时,都增加延时程序块,用于等待碰撞开关内部震动平息,让开关能稳定控制LED灯。 | ||
[[File:mixly-ctrl1-table-lamp.jpg|600px|center]] | [[File:mixly-ctrl1-table-lamp.jpg|600px|center]] | ||
'''开始编程''' | '''开始编程''' | ||
+ | <br> | ||
1、开关按下和松开时都增加延时,等待碰撞开关内部震动平息,按下再松开开关后,LED灯点亮。 | 1、开关按下和松开时都增加延时,等待碰撞开关内部震动平息,按下再松开开关后,LED灯点亮。 | ||
[[File:mixly-ctrl4-table-lamp-code4.jpg|600px|center]] | [[File:mixly-ctrl4-table-lamp-code4.jpg|600px|center]] | ||
第104行: | 第101行: | ||
[[File:mixly-ctrl4-table-lamp-code5.jpg|600px|center]] | [[File:mixly-ctrl4-table-lamp-code5.jpg|600px|center]] | ||
'''测试结果:''' | '''测试结果:''' | ||
+ | <br> | ||
按下再松开碰撞开关,LED灯点亮;再按下并松开碰撞开关,LED灯熄灭,如此循环,不断点亮熄灭。这样我们就可以用碰撞开关稳定的控制小台灯的亮灭啦! | 按下再松开碰撞开关,LED灯点亮;再按下并松开碰撞开关,LED灯熄灭,如此循环,不断点亮熄灭。这样我们就可以用碰撞开关稳定的控制小台灯的亮灭啦! | ||
<br> | <br> | ||
第115行: | 第113行: | ||
==相关案例== | ==相关案例== | ||
− | *'''[[ | + | *'''[[多功能手电筒]]''' |
*'''[[门铃]]''' | *'''[[门铃]]''' | ||
*'''[[音乐画]]''' | *'''[[音乐画]]''' |
2017年6月13日 (二) 02:32的最新版本
概述制作一个小台灯,学会用开关控制台灯的亮灭。 适合套件:mCookie102,mCookie202,mCookie302,IBC
模块清单模块
其他设备
模块搭建
编程使用的程序块编程思路按下碰撞开关,LED灯点亮;再按一下碰撞开关,LED灯熄灭。 开始编程1、按下碰撞开关,LED灯点亮
2、按下碰撞开关,LED灯熄灭
3、
测试结果:
编程思路:
开始编程
2、开关按下和松开时都增加延时,等待碰撞开关内部震动平息,按下再松开开关后,LED灯熄灭。 测试结果:
技术规范
相关案例Q&A |