查看“DIY小台灯”的源代码
←
DIY小台灯
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 1000px;" |- | ==概述== [[File:anywhere_table-lamp.jpg|600px|center]] 制作一个小台灯,学会用开关控制台灯的亮灭。 适合套件:mCookie102,mCookie202,mCookie302,IBC ==模块清单== ===模块=== {|class="wikitable" |- |模块||数量||功能 |- |[[mCookie-Core/zh|mCookie-Core]]||1||核心板 |- |[[mCookie-USBTTL|mCookie-USBTTL]]||1||程序下载模块 |- |[[mCookie-Hub/zh|mCookie-Hub]]||1||传感器转接板 |- |[[Sensor-Crash/zh|Crash]]||1||碰撞开关 |- |[[Sensor-LED/zh|LED]]||1||单色灯 |} ===其他设备=== *USB数据线*1 *传感器连接线*1 *传感器外壳*1 *乐高或其它固定结构 [[File:anywhere_table-lamp-module.jpg|600px|center]] <br> ==模块搭建== [[File:anywhere_table-lamp-module—step.jpg|600px|center]] *将模块和传感器组装起来: **将红色的核心模块,USB上传模块与绿色的扩展模块吸在一起; **将红色LED灯连接在Hub的6/7管脚; **将碰撞开关连接在Hub的4/5管脚; **将USB连接线一端插入电池底座,另一端连接电脑; <br> ==编程== ===认识新程序块=== '''"等待"程序块''' <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灯熄灭。 [[File:mixly-ctrl-table-lamp.jpg|600px|center]] ===开始编程=== '''1、按下碰撞开关,LED灯点亮''' <br> “碰撞开关”程序块管脚号设为4,状态设为按下;“数字输出”程序块管脚号设为6,状态设为高;即等待碰撞开关按下后,LED灯点亮。 [[File:mixly-ctrl-table-lamp-code1.jpg|600px|center]] '''2、按下碰撞开关,LED灯熄灭''' <br> “碰撞开关”程序块管脚号设为4,状态设为按下;“数字输出”程序块管脚号设为6,状态设为低;即等待碰撞开关按下后,LED灯熄灭。 [[File:mixly-ctrl-table-lamp-code2.jpg|600px|center]] 3、 '''测试结果:''' <br> 看看是不是像我们预想的那样:按一下开关,灯点亮,再按一下开关,灯熄灭,如此重复循环。 <br> <br> Q:为什么我感觉开关有时很灵活,有时又不受控制呢? <br> A:这是因为核心模块的思考速度非常快,当你按下碰撞开关的一瞬间,程序判断开关一直在被按下,因此就不断循环了成百上千次,在那一瞬间,LED灯其实点亮熄灭了很多次,只是人眼无法分辨而已,所以你就会感觉它不受控制。 <br> Q:哦,明白了,是不是我将程序设置成等待碰撞开关按下,再等待碰撞开关松开,就可以了呢? <br> A:那可以试一试! <br> 按下碰撞开关,再松开后,让LED灯点亮。按下碰撞开关,再松开后,让LED灯熄灭。修改“碰撞开关”和“数字输出”程序块的参数。 [[File:mixly-ctrl-table-lamp-code3.jpg|600px|center]] <br> <br> Q:感觉开关还是不受控制? <br> A:这是因为“碰撞开关”属于机械按键,在按下或松开的一瞬间,内部金属片会多次震动,所以程序中会检测到碰撞开关被多次按下和松开,程序也会不断循环下去,起始在这个过程中LED灯已经点亮熄灭很多次,致死肉眼分辨不出而已。 <br> Q:那有什么办法可以让开关稳定控制吗? <br> A:其实,我们只需要加上一个“延时”功能就可以解决这个机械抖动的问题,在按下开关的时候,延时100毫秒(让程序暂停运行100毫秒),用于等待碰撞开关内部震动平息,消除碰撞开关的频繁抖动。 <br> '''编程思路:''' <br> 开关每次按下和松开时,都增加延时程序块,用于等待碰撞开关内部震动平息,让开关能稳定控制LED灯。 [[File:mixly-ctrl1-table-lamp.jpg|600px|center]] '''开始编程''' <br> 1、开关按下和松开时都增加延时,等待碰撞开关内部震动平息,按下再松开开关后,LED灯点亮。 [[File:mixly-ctrl4-table-lamp-code4.jpg|600px|center]] 2、开关按下和松开时都增加延时,等待碰撞开关内部震动平息,按下再松开开关后,LED灯熄灭。 [[File:mixly-ctrl4-table-lamp-code5.jpg|600px|center]] '''测试结果:''' <br> 按下再松开碰撞开关,LED灯点亮;再按下并松开碰撞开关,LED灯熄灭,如此循环,不断点亮熄灭。这样我们就可以用碰撞开关稳定的控制小台灯的亮灭啦! <br> 自己动手,用乐高搭建一个小台灯,将开关和LED灯放置在合适的位置,比一比谁的台灯最好看。 [[File:anywhere_table-lamp.jpg|600px|center]] ==技术规范== *碰撞开关产品编号:MSDS11 *数字信号输入传感器。 *详细参考[[Sensor-Crash/zh]] ==相关案例== *'''[[手电筒]]''' *'''[[门铃]]''' *'''[[音乐画]]''' ==Q&A== |}
返回至
DIY小台灯
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息