|
想来大家也完了几天的LED了,总感觉用程序控制LED不是很爽,不能实打实的人机互动,所以,今天制作了一期,人机互动的例子带给大家:用按钮控制LED。但是呢,不能把按钮单纯的作为开关,一按就亮,一放就灭,那样大家会鄙视我的,把Arduino控制器拿掉依旧有效,所以呢,我们提高了点水平,将开关作为延时开关来使用,按下开关后1秒钟,灯才会亮,灯亮5秒后才熄灭,这样大家就能依据这个例子,自己延伸出很多好玩的玩法出来。
首先,老规矩介绍用到的元器件:
ocrobot mango控制板(Arduino兼容) | 一块 | 专用面包板跳线 | 一盒 | 面包板 | 一块 | 镊子 | 一把 | LED发光二极管 | 一个 | 按钮开关 | 一个 | 10K欧姆电阻 | 一个 | 220欧姆电阻 | 一个 | USB数据连接线 | 一根 |
我们来看一下电路连接示意图图
大家应该看到了从开关单独有一个10k欧姆的电阻接到地线,这个电阻是作为下拉电阻使用,具体介绍请参阅:下拉电阻
然后我们就来将电路搭建出来
同样的,我们的布线不是最优布局,也不是最漂亮的,大家在面包板布线上应该多发挥自己的创意,力求做到简单易读,美观大方~
有不少同学反映按键接触不良,造成无法使用,这个主要是因为按键没有完全插进面包板,所以才会有此问题。上两个按键正确插入面包板的图,大家可以参考一下,按入面包板的时候要左右用力均匀,完全压入面包板就可以了。如果往出拿呢,也很简单,可以使用面包板跳线盒中的圆头镊子,慢慢从中间槽中撬出来就可以了。
接下来将我们的程序下载进去- /*
- 作者:极客工坊
- 时间:2012年5月24日
- IDE版本号:1.0.1
- 发布地址:[url=http://www.geek-workshop.com]www.geek-workshop.com[/url]
- 作用:当你按下按钮后1秒钟,灯会亮,然后维持5秒钟,熄灭
- */
- void setup ()
- {
- pinMode(4,INPUT); //将4号数字口设置为输入状态,13号数字口设置为输出状态
- pinMode(13,OUTPUT);
- }
- void loop()
- {
- int n =digitalRead(4); //创建一个变量n,将4号数字口的状态采集出来赋值给他。
- if (n==HIGH) //判断n是否为高电平,如果是执行下面的语句,不是则跳过。
- {
-
- delay(1000);
- digitalWrite(13,HIGH);
- delay(5000);
- digitalWrite(13,LOW);
-
- }
- }
复制代码 程序中我们涉及到了一个新语句 ,判断句 If,请参考 arduino语法手册,查阅关于If语句的资料
希望大家不要仅限于只是照做教程的内容,那样没有任何意义, 可以结合之前的教程,将两个实验结合起来,例如可以尝试做一个用两个按钮控制流水灯方向的小项目,大家应该释放自己的创意,梦想和创新才是最重要的
最后附上演示视频
==========分割线 下面为扩展阅读==========
本次实验所用到的语法请点击关键字进入极客工坊WIKI查看,词条内容在WIKI中不定期更新。
void
setup()
loop()
pinMode()
digitalWrite()
delay()
if
int
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|