第2课 会发光的LED灯
LED(LightEmittingDiode)灯又称发光二极管,是一种能够直接将电能转化为可见光的固态半导体器件,如图2-1所示。
图2-1 LED灯
课程目标
· 熟练使用顺序结构控制LED灯的亮和灭;
· 理解PWM脉冲宽度调制技术并控制LED灯的明暗;
· 掌握程序的循环结构和呼吸灯的程序设计。
任务描述
· 制作台灯,编写程序控制台灯的亮或灭;
· 编写程序制作呼吸灯。
动手制作
1.使用乐高积木搭建台灯
使用乐高积木能够很容易地搭建出台灯。本课台灯的结构利用乐高的梁和销进行搭建,如图2-2所示。
图2-2 积木搭建的灯
知识加油站
乐高梁分为直梁和弯梁,如图2-3和2-4所示。为了搭建方便,也可以使用四边形梁,如图2-5所示。我们搭建的机器人主要依靠这几种梁搭建出不同的机器人结构。
图2-3 直梁
图2-4 弯梁
图2-5 四边形梁
销分为黑色销和灰色销,如图2-6所示。黑色销和灰色销的区别在于,黑色销连接部分更加坚固,灰色销连接部分比较松动。当需要固定结构的时候,我们利用黑色销搭建;当需要转动结构的时候(如连杆机构),就可以利用灰色销搭建。
图2-6 灰色销和黑色销
十字轴如图2-7所示,它可以很方便地连接两根梁,固定的时候两端连接轴套。
图2-7 十字轴
抛砖引玉
使用乐高积木零件进行搭建更加简单、易学,可以在非常短的时间制作出满意的作品。使用的梁和销,相当于工业产品中的金属梁和螺丝钉。在熟练使用本套课件制作机器人后,同学们再去尝试金属零件的制作就轻而易举了。
2.主板与I/O扩展板连接
将I/O扩展板插入Arduino主板上方,插针要与主板底座相对应,连接图如图2-8所示。
图2-8 主板与I/O扩展板连接
知识加油站
I/O扩展板
主板可以方便地与I/O扩展板相互连接。扩展板提供14个数字3P针脚、6个模拟3P针脚;中部可直接插入Xbee封装的蓝牙、WiFi和Xbee通信模块,并配有普通蓝牙模块、APC和SD卡的扩展接口;扩展板角落接线柱为主控器和扩展板供电,中部接线柱为数字口上的舵机供电,如图2-9所示。
图2-9 FansMakerI/O扩展板
3.LED灯与主板连接
LED灯模块如图2-10所示。
图2-10 LED灯模块
知识加油站
LED灯的优点是体积小、发热量少、寿命长、省电、光源色彩丰富、抗冲击和抗震性能好、不易破损、安全性高。
LED灯有3个引脚,VCC、GND、D分别代表正极、地和数据。通过导线与主板的3个引脚对应连接,注意线序不要接错(颜色要对应),将LED灯连接到主板的数字4针脚上,如图2-11所示。
图2-11 LED灯与扩展板连接
抛砖引玉
导线的颜色与数字针脚的颜色是对应的,分别是黑色、红色和蓝色,连接时黑色接大地,红色连接正极,蓝色连接数据,这样就不会出错了。注意,一旦连接出现问题,有可能会烧坏设备,如果看到烟雾或闻到烧焦的气味,要立刻拔掉电源。
4.LED灯与积木连接
通过螺丝和螺母将LED灯与积木进行连接,如图2-12所示。
图2-12 LED灯与积木连接
程序设计
本节课编写程序控制台灯的亮或灭。
1.控制LED灯亮或灭
控制数字针脚4设定值为高,LED灯亮,如图2-13所示。当设定值为低时,灯灭。这里要注意在灯亮和灭程序之间加入延时,否则,我们的肉眼可能无法看到灯亮。
图2-13 LED灯亮
制作SOS信号灯时,SOS信号灯亮的时间是三长两短,如图2-14所示的程序是一长一短,试编写三长两短的程序。
图2-14 LED灯亮
2.控制LED灯亮、较亮、暗和灭
LED灯有亮和灭,如果需要稍亮一些或稍暗一些,是否可以用程序进行控制呢?答案是肯定的,我们需要使用PWM脉冲宽度调制技术,Arduino主板的PWM端口分别是3、5、6、9、10、11。注意,应该将LED连接到具有PWM功能的接口上,这里将它连接到数字接口3上。
知识加油站
PWM脉冲宽度调制
数字信号只有高(5V)、低(0V)两种电压信号。如果要使灯变暗,可以通过串联电阻实现,但是程序中如果要实现频繁地变换灯的不同亮度,用电阻的方法就不现实了,我们需要使用PWM技术。
PWM使用占空比控制方波,从而输出不同的电压。占空比就是高电平保持的时间与该PWM的时钟周期的时间之比,占空比越大,电压越高,灯就越亮。如图2-15所示。
图2-15 PWM方波
PWM使用数字手段控制模拟的输出,例如00000000表示0V,11111111表示5V, 10101010表示2.5V。这样,利用PWM技术就可以将数字针脚的设备当成模拟口使用了,例如灯的明暗、电机的转速都是依靠PWM脉冲宽度调制技术实现的。
程序如图2-16所示,由于使用PWM技术,在程序设计中应使用“设定模拟针脚值”模块。
图2-16 设定模拟针脚值
抛砖引玉
Arduino主板上数字接口前有“~”标记的是支持PWM技术的接口,在传感器扩展板和电机扩展板上面有“*”标记的是支持PWM技术的接口,可以通过这个方法查找支持PWM技术的数字接口。
3.呼吸灯的程序设计
LED灯可以像人的呼吸一样缓慢地变暗和变亮,呼吸灯的程序设计需要使用“当循环”语句。在“当循环”语句中,程序会被循环执行。程序如图2-17所示。
图2-17 呼吸灯
知识加油站
当循环
当test条件成立时,执行commands命令语句并循环;当条件不成立时退出循环,如图2-18所示。像这种可以循环执行的语句结构叫做循环结构。
图2-18 当循环
变量
变量是用来储存数值或字符的,它可以进行数学运算。举个例子,变量就像水杯一样,数值或字符会像水一样存放在水杯中,变量内容在第6课会重点讲解。
变量可以重复储存数值,新存储的数值会覆盖掉前面存储的数值。如图2-19所示,led变量加1后,将结果再赋值给led变量。
图2-19 设置变量led加1
▶完成效果
台灯的完成效果如图2-20所示,你也可以加上按钮,这样就可以制作一个脚踏灯了。
图2-20 制作的台灯
图2-20(续)
▶我问你答
你对PWM技术是如何理解的?
________________________________________________________________________
知识拓展
PWM技术对直流电机的控制
利用PWM技术可以控制灯光的明暗,它还可以控制直流电机的转速。设置模拟针脚值0~255(0是停止,255是最大值)。可以通过PWM控制电机的转速。