Arduino案例设计中的“借鉴”
2022-11-03南京师范大学附属中学于悦
◆南京师范大学附属中学 于悦
一、目标案例
在Arduino编程的教学中,学生学习基础编程语句、功能模块以后,能完成课程相关案例。达成教学目标后,我提出了更高的要求:设计一个全新的作品。
学生开始思考,用学到的知识能做出什么作品?看到屋顶的风扇,有的同学便提出做风扇。虽然风扇的设计已经很成熟,但对于刚入门Arduino编程学习的学生来说,是一个不错的选择。
在学生动手设计风扇前,我对他们提出了两点要求:第一,可以通过遥控器控制;第二,能够多挡位调节风速。
二、学生设计
我在课堂上深入介绍了红外接收装置及案例应用,于是,学生选用了在课堂上学习使用过的红外遥控器及VS1838B红外接收头(红外遥控接收装置,如图1所示)。
图1 红外遥控接收装置
通过红外遥控接收装置控制输出的高低信号,从而控制电机的开关,带动扇叶转动,即可实现遥控风扇的启动与停止。然而,对于如何实现多挡位调节风速功能,大多数学生感到很为难,不知道该使用哪种编程语句。
三、“借鉴”案例解决问题
针对学生在设计过程中遇到的难题,我提出解决问题的方式为“借鉴”——借鉴相似的案例。
课堂上,学生已掌握呼吸灯(灯光效果由明到暗或由暗到明的逐渐变化)的相关案例设计(程序如图2所示),应用PWM脉宽调制,即调节占空比,从而调节灯珠的亮度,实现呼吸灯效果。
图2 呼吸灯程序
电机多种转速与灯珠多种亮度实现的效果有相似之处,主要区别在于是否连续变化。图2的呼吸灯程序用到了循环编程语句,设置模拟输出量从0—255逐渐变大,实现灯珠逐渐变亮的效果。
而目标案例风扇的多挡位风速无需实现逐渐变化,所以不会用到循环语句对输出量进行赋值。要改变转速,可直接设置模拟输出量为0—255之间的某个固定参数,并与红外遥控器的相应按键对应,即可实现红外遥控调节多挡位风速功能。
四、设计成果
学生的设计成果如图3、图4、图5所示。按下红外遥控器的“1”“2”“3”按键分别启动风扇的低挡、中挡、高挡,按下“0”按键,风扇停止转动。
图3 控制系统方框图
图4 硬件连接
图5 程序设计
五、总结与反思
学生在设计新的案例时,往往过于自信,急于创新,不会想到借鉴自己做过的设计。
通过指导学生设计红外遥控多挡位风速风扇,我更加深入理解到,在Arduino编程设计的课堂上,教师不仅要教学生掌握基础知识,更重要的是引导学生学会将掌握的内容进行更广泛地应用,不仅局限于某一个特定场景,实现某一种特定效果,而是要做到举一反三。
学会找相似,“借鉴”也可以创造新设计。