MindCoder 教程系列 —— 2 用开关(按钮)控制LED-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7365|回复: 2

MindCoder 教程系列 —— 2 用开关(按钮)控制LED

[复制链接]
发表于 2012-3-28 16:30 | 显示全部楼层 |阅读模式
这篇教程非常简单。。。 但是涉及到2个特别的概念 所以会有很多文字介绍
用到一个Digital In Waiter 和一个Digital Out

Digital In Waiter其实是一个Listener功能的模块 当初在设计MindCoder的时候我希望把程序尽量设计成电路的样子 所以我打算把数字输入设计的像真实的电路开关一样 可以截断电路
当程序执行到它的时候 它会暂停在这里 (相当于能量被存储在里面了)这时候当你设置的参数(图中是 2号引脚 高电位)条件达成之后 程序就会继续往下跑 把能量传递给后面的模块 类似开关接通

QQ截图20120328151101.png



Digital Out 你会注意到图片里会有一个Set Digital Out
没错 Set Digital Out就是我们第一个教程里面用到的设置某个引脚的命令 这个命令和Arduino本身的语法也很像 很基础
但是还是基于电路的思考 我想设计一个像电路中的LED一样的东西 给它电 它就亮 不给电就不亮 而不是让人蛋疼的去设置低电位让它关掉 这种感觉就像你尿完尿还要用手去按冲水一样恶心
Digital Out可以让你需要的时候执行它 不需要的时候它自己会关掉它所控制的引脚 非常适合控制LED 继电器 普通直流电机。。。。

最后你的程序需要做一个循环回Digital In Waiter
Start: Start是程序的入口 模块只有接到上面才能获取"能量"来运转 但是Start只有在程序启动的时候发出仅仅一次能量。。。也就是说 你必须让后面的程序形成循环 保证"能量"不流失 才能让程序一直跑

为什么不循环回电池?这才是电路!
这里的设计我也纠结过 当然我也观摩过很多图形化编程软件 很多采用此种设计 每次Loop都从电池(Start)出来 但是这样做会导致很严重的憋屈  比如做计时器,做时间插值器 和时间有关的都得蛋儿逼 除非你让用户自己去弄个计数器 操 我最讨厌计数器
而且当你设计了多个“线程”的程序 不回电池可以让他们的线路保持自己的"生命" 当然你可以更方便随时介入激活或者毁掉某一个线路的执行 详情请关注Debug调试部分 不在此贴讨论范围

发表于 2012-3-28 16:39 | 显示全部楼层
持续关注中~~~
发表于 2012-4-12 19:43 | 显示全部楼层
学习中
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-27 23:59 , Processed in 0.075328 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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