5427浏览
查看: 5427|回复: 3

[Arduino机器人课程] Arduino机器人第2课:按钮控制的LED

[复制链接]
本帖最后由 8334180 于 2014-5-3 22:45 编辑

专题二“按钮控制的LED”是对专题一的巩固与深化,在学生了解了Arduino的基础知识后,本专题从物理电路的连接上,增加了按钮;从编程上,增加了变量、数字输入和选择结构等内容。
本文主要对本次课的重难点、主要教学设计的设计意图以及学生上课的反应做部分说明。

相关资源下载地址:http://pan.baidu.com/s/1pJ0kk0V 密码:2ebm
本课程的讨论地址:http://mc.dfrobot.com.cn/forum-75-1.html

1.连接按钮

这一部分,我们主要是引导学生将按钮接到板子上,这里特别需要提醒的是按钮是接数字口还是模拟口。按钮有两种状态按下与放开,而数字口的值只有0和1,所以教师要引导学生将按钮接的是数字口。在连接时,会发现有的学生忘了线的接法,所以教师还要提醒学生黑线接GND,红线接VCC,第三根线接数字口。此外,我们还要向学生说明我们使用的DFROBOT的按钮按下是LOW(0),放开是HIGH(1),其他厂家的按钮可能不是这样的。
在这一点上,我们对Arduino教育机器人的模块标准制订非常有感触,不同标准对课程的开设带来很多不必要的影响,尤其是DFRobot的V5和V7的板子,在线序上让我们很头疼。

2.初步尝试按钮控制LED——按下亮,放开灭

引导学生我们将要做的第一个尝试,即按钮按下LED亮,放开LED灭。之后我们把程序发给学生,为学生粗略解读程序(包括bool、“=”等),请他们下载观察现象。与预设的情况相反,这样便引出了用“!”来实现。在这里,学生还是比较容易接受的。
Arduino的范例中提供了按钮控制LED的代码。我们之所以没有采用这种形式,主要是希望直接让学生对Arduino的bool变量和数字端口的值结合起来理解。


arduino的范例:
我们的范例:
void loop(){
  buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {     
    digitalWrite(ledPin, HIGH);
  }
  else {
    digitalWrite(ledPin, LOW);
  }
}
void loop() {
  a=(digitalRead(2));
  digitalWrite(5,a);
}


3.进一步探究按钮控制的LED——按下亮,延时灭

     前面的按钮控制LED比较简单,学生甚至觉得这和在LED接个传统开关没有区别,所以用具体的情境引出延时的概念。这个过程中最重要的是,首先得判断按钮是否按下,自然地引出选择结构(我们用的是if结构),然后延时一段时间,再将LED灭掉。有的学生没有认真听讲,在判断是否按下的时候,条件判断用的是“=”而不是“==”;此外设置完延时之后,并没有将lED 灭掉,导致按下按钮,LED一直亮着。


4.一个按钮控制一个LED——按下亮,再按下灭

这一部分我们分为两个步骤来完成。
第一步,先写代码来判断当按钮按下,就改变Led的状态。
强调的还是先判断按钮是否按下,只有按钮按下的时候才改变LED的状态,提醒学生可引入一个变量k(k=0,LED灭,k=1,LED亮)。当学生发现问题后(控制及其不稳定),然后思考原因,引导他们探究。通过这一探究,让学生深刻体会到Arduino代码中Loop部分是循环执行的。而且Arduino的执行速度非常快!
第二步,引导学生再加入一个变量,记录上一次的状态。
我们提出“按下亮,放开,再按下灭”的思路,引导学生再引入一个记录按钮状态的变量s,这时,控制相对稳定许多。此时,还会有部分学生质疑没达到百分百的稳定,我们向他们提出了拓展任务——按钮的消抖。

5.扩展任务:按钮的消抖

向学生解释抖动现象产生的原理及解决方法(我们采用的是延时),请学生自己尝试。但是由于本课内容量较大,时间已经来不及了,所以拓展任务并没有开展。
从这一课的实践可以看出,高中的学生可以根据学生的编程能力,完成使用变量来实现一个按钮控制一只LED。小学或者初中的学生,估计只能到第四部分的第一步,用延时完成就差不多了。下一周我们将开始初中的教学实践了。

收获:

学生在课间做了一些其他的创意尝试,如有的学生设计了“按钮按下一个亮,再按下这个灭,另外两个亮”,“按钮按下一个亮,再按下两个亮,再按下三个亮”等,让我们很是欣喜的。



tutorials

丄帝De咗臂  高级技匠

发表于 2014-4-20 19:40:48

沙发,哈哈,加油
回复

使用道具 举报

华仔  中级技师

发表于 2016-7-23 00:18:56

版主你的网盘不能下载东西了
回复

使用道具 举报

bboybb  见习技师

发表于 2017-1-12 09:06:57

如有电路连接图就更好了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail