内容正文:
第十三课 点阵
一、教学目标
1.认识点阵元器件、面包板扩展板,掌握点阵元器件的连接线路及连接方法。
2.掌握点阵中发光二极管的发光原理。
3.用程序控制点阵各个小灯的亮灭,用函数进行编程。
二、教学重、难点
1.点阵元器件的原理。
2.控制点阵程序的编写,函数的使用。
三、教学方法
任务驱动式、小组合作探究
四、教学过程
导入:利用学生生活中常见广告牌进行导入,贴切生活。
讲解双色点阵的发光原理,
双色点阵原理图
共阳:即行共阳,即行连接正极,所以行高列低,小灯亮
以及连接线路,学生小组合作探究,连接双色点阵。
任务一:让第一行第一列的小灯亮起来。
学生通过小组合作探究,进行编程,对点阵中的二极管的发光原理进行更深的理解。
任务二:让小灯全部亮起来,进一步理解行高列低的发光原理。
任务三:让对角线上前三个灯亮起来,小组合作进行编程。在编程过程中,不断发现问题,不该亮的小灯也亮起来了,有些小灯似亮非亮。随后教师进行讲解,什么情况下小灯会亮,如何控制每个小灯,以及小灯为什么似亮非亮。
发现问题:三行三列9盏灯都亮了?
解答:因为10为高时,2、3、4均为低;因为11为高,2、3、4均为低;因为12为高,2、3、4均为低。
展示修改后的代码,学生尝试
发现问题:是不是你发现有些你不想让它亮的灯也亮了?
解决问题:因为如果不加延时,小灯亮的时间和数据交换的时间是一样长的,小灯刚亮起来的同时就切换下一个状态了,就会出现乱的现象,所以要加一个延时,保证小灯亮起来,再进行数据交换,让程序充分执行。
但是,延时要保证时间短,这样会让我们看起来灯是一直亮着的。
(视觉暂留,实际上执行第二个状态时第一行已经灭了)
展示修改后的代码,学生探究
发现问题:设置了延时发现有的不该亮的小灯还是似亮非亮?
解决问题:这是因为你设置的相反的管脚不包括当前状态的管脚导致的,所以最好的方法是设置一个函数(col-high)将所有的列都设置为高,这样会保证不该亮的灯都不亮,并且可以在一定程度上简化代码。
这才是三行代码就已经偏多了,八行则需要更多的代码,有什么方法可以在简化一下代码。
Ver-2:写 行为低(row-low)的函数,进一步简化代码
让学生尝试将对角线点亮。
发送mission-ver2给学生。
任务四:设计自己想设计的图案。引入一维数组的概念,讲师讲解一维数组的使用方法。学生通过自主