![Arduino &乐高创意机器人制作教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/830/26943830/b_26943830.jpg)
第2课 会发光的LED灯
LED(LightEmittingDiode)灯又称发光二极管,是一种能够直接将电能转化为可见光的固态半导体器件,如图2-1所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0020_0001.jpg?sign=1739670688-Q5KtYjhhjKVW3EwxYhD302WKtEbm89Gl-0-8714a93fcc94ed98ad72b71d69abc9eb)
图2-1 LED灯
课程目标
· 熟练使用顺序结构控制LED灯的亮和灭;
· 理解PWM脉冲宽度调制技术并控制LED灯的明暗;
· 掌握程序的循环结构和呼吸灯的程序设计。
任务描述
· 制作台灯,编写程序控制台灯的亮或灭;
· 编写程序制作呼吸灯。
动手制作
1.使用乐高积木搭建台灯
使用乐高积木能够很容易地搭建出台灯。本课台灯的结构利用乐高的梁和销进行搭建,如图2-2所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0021_0001.jpg?sign=1739670688-6iFwn4f9AnGQZrSBJjIUDykoXc2Jdbp1-0-2555bc1c35219c59c4093af26b973b99)
图2-2 积木搭建的灯
知识加油站
乐高梁分为直梁和弯梁,如图2-3和2-4所示。为了搭建方便,也可以使用四边形梁,如图2-5所示。我们搭建的机器人主要依靠这几种梁搭建出不同的机器人结构。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0021_0002.jpg?sign=1739670688-JSvsN5Q2Te6RpU1cq8opGDDTx1T4rxUM-0-47c83a4ffa49f1ee9771383b163546e3)
图2-3 直梁
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0021_0003.jpg?sign=1739670688-xovVw6uxNQSLkbIUkYbLUD0WTZijhta7-0-9273739b9f7a035031a57d74abbade88)
图2-4 弯梁
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0021_0004.jpg?sign=1739670688-LnkqGa5Z1RtQIuktbrwtD5CePTqMMlrT-0-36129b10f633024661ca7d7c7fa52c7a)
图2-5 四边形梁
销分为黑色销和灰色销,如图2-6所示。黑色销和灰色销的区别在于,黑色销连接部分更加坚固,灰色销连接部分比较松动。当需要固定结构的时候,我们利用黑色销搭建;当需要转动结构的时候(如连杆机构),就可以利用灰色销搭建。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0021_0005.jpg?sign=1739670688-T5iBLvlSyuO4oniSwUWeo6eXz6XY0LfG-0-7e0e262e40b3197363f19d65758c93d5)
图2-6 灰色销和黑色销
十字轴如图2-7所示,它可以很方便地连接两根梁,固定的时候两端连接轴套。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0021_0006.jpg?sign=1739670688-s4V0tabj4VgECDv0Da0Dqw3EpLJVLIJC-0-9631652ba14a22cc1cd6477e30de42f7)
图2-7 十字轴
抛砖引玉
使用乐高积木零件进行搭建更加简单、易学,可以在非常短的时间制作出满意的作品。使用的梁和销,相当于工业产品中的金属梁和螺丝钉。在熟练使用本套课件制作机器人后,同学们再去尝试金属零件的制作就轻而易举了。
2.主板与I/O扩展板连接
将I/O扩展板插入Arduino主板上方,插针要与主板底座相对应,连接图如图2-8所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0022_0001.jpg?sign=1739670688-lbKeJivkZ0jG2drz9xzQw4B2suMPSNdP-0-d58c9641f5f34046ccb22a4ac2eec6f0)
图2-8 主板与I/O扩展板连接
知识加油站
I/O扩展板
主板可以方便地与I/O扩展板相互连接。扩展板提供14个数字3P针脚、6个模拟3P针脚;中部可直接插入Xbee封装的蓝牙、WiFi和Xbee通信模块,并配有普通蓝牙模块、APC和SD卡的扩展接口;扩展板角落接线柱为主控器和扩展板供电,中部接线柱为数字口上的舵机供电,如图2-9所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0022_0002.jpg?sign=1739670688-ZL9UfOE1uI5ODKe0rijx09vS9DcjPsbP-0-36b9f7558ec217ce9ff9d9cdb0eb34cc)
图2-9 FansMakerI/O扩展板
3.LED灯与主板连接
LED灯模块如图2-10所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0023_0001.jpg?sign=1739670688-oc1eV0kfUqrmRKl3NGR2lfD3eVfLaVn7-0-a92c590789405277fa0e809895f06529)
图2-10 LED灯模块
知识加油站
LED灯的优点是体积小、发热量少、寿命长、省电、光源色彩丰富、抗冲击和抗震性能好、不易破损、安全性高。
LED灯有3个引脚,VCC、GND、D分别代表正极、地和数据。通过导线与主板的3个引脚对应连接,注意线序不要接错(颜色要对应),将LED灯连接到主板的数字4针脚上,如图2-11所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0023_0002.jpg?sign=1739670688-ow1gno8XSc2F8Z0DCbBbVCemBbU1Fegr-0-2b143cc52919479ecaea2fb9f984c305)
图2-11 LED灯与扩展板连接
抛砖引玉
导线的颜色与数字针脚的颜色是对应的,分别是黑色、红色和蓝色,连接时黑色接大地,红色连接正极,蓝色连接数据,这样就不会出错了。注意,一旦连接出现问题,有可能会烧坏设备,如果看到烟雾或闻到烧焦的气味,要立刻拔掉电源。
4.LED灯与积木连接
通过螺丝和螺母将LED灯与积木进行连接,如图2-12所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0024_0001.jpg?sign=1739670688-k3E73kZDiF57B06vXjnbNtk3BERO7PZh-0-130c7ba657a560c6726b2039375f8031)
图2-12 LED灯与积木连接
程序设计
本节课编写程序控制台灯的亮或灭。
1.控制LED灯亮或灭
控制数字针脚4设定值为高,LED灯亮,如图2-13所示。当设定值为低时,灯灭。这里要注意在灯亮和灭程序之间加入延时,否则,我们的肉眼可能无法看到灯亮。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0024_0003.jpg?sign=1739670688-tkrbTFexcuK9EzK9o1dCcY0oQXuKBdGA-0-5ee401b301d96edeebdd44b31bb1486b)
图2-13 LED灯亮
制作SOS信号灯时,SOS信号灯亮的时间是三长两短,如图2-14所示的程序是一长一短,试编写三长两短的程序。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0024_0004.jpg?sign=1739670688-McvCKPLd3fWnEKAYuR00P7b1pRBBnTh5-0-6560f865b1f2b2d1b04d066741334c16)
图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所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0025_0001.jpg?sign=1739670688-6yxr0gKTi8KLSuD33iLmvRPMOKXy56UE-0-6ca40abf2586b35d721be8c81d37fe24)
图2-15 PWM方波
PWM使用数字手段控制模拟的输出,例如00000000表示0V,11111111表示5V, 10101010表示2.5V。这样,利用PWM技术就可以将数字针脚的设备当成模拟口使用了,例如灯的明暗、电机的转速都是依靠PWM脉冲宽度调制技术实现的。
程序如图2-16所示,由于使用PWM技术,在程序设计中应使用“设定模拟针脚值”模块。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0026_0001.jpg?sign=1739670688-TLybqECfGqWw7JE1oPOpeImyXlURzWVi-0-f696a30c18716b25389c45d754e699ba)
图2-16 设定模拟针脚值
抛砖引玉
Arduino主板上数字接口前有“~”标记的是支持PWM技术的接口,在传感器扩展板和电机扩展板上面有“*”标记的是支持PWM技术的接口,可以通过这个方法查找支持PWM技术的数字接口。
3.呼吸灯的程序设计
LED灯可以像人的呼吸一样缓慢地变暗和变亮,呼吸灯的程序设计需要使用“当循环”语句。在“当循环”语句中,程序会被循环执行。程序如图2-17所示。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0026_0002.jpg?sign=1739670688-0Eaa2755H2zNrkq08AKkkXzvRmUCYxRO-0-32b1759f45731c4d94b241ff87fa74e8)
图2-17 呼吸灯
知识加油站
当循环
当test条件成立时,执行commands命令语句并循环;当条件不成立时退出循环,如图2-18所示。像这种可以循环执行的语句结构叫做循环结构。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0027_0001.jpg?sign=1739670688-1dV25ntyhBE2cdcGgx8EfLACGUbU3tS2-0-5f4ee03ba6f28b8c3e4b0c6c02b7e558)
图2-18 当循环
变量
变量是用来储存数值或字符的,它可以进行数学运算。举个例子,变量就像水杯一样,数值或字符会像水一样存放在水杯中,变量内容在第6课会重点讲解。
变量可以重复储存数值,新存储的数值会覆盖掉前面存储的数值。如图2-19所示,led变量加1后,将结果再赋值给led变量。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0027_0002.jpg?sign=1739670688-yl2wPUvfcwhFGG0uhrcZaYy1NXLMvhXF-0-a436beb1b6356d36fceb57e3601d59d0)
图2-19 设置变量led加1
▶完成效果
台灯的完成效果如图2-20所示,你也可以加上按钮,这样就可以制作一个脚踏灯了。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0027_0003.jpg?sign=1739670688-0pGYH90DoYWEJsNRppGyXLKUEmGrhXQu-0-747d79a4b745a327f0abe780614c8cba)
图2-20 制作的台灯
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0028_0001.jpg?sign=1739670688-fBjhKDRjhBHZy2JpwXOIuWZumvIKeUvc-0-4bda88673e9e75af8f532d5b6fd3949b)
图2-20(续)
▶我问你答
你对PWM技术是如何理解的?
________________________________________________________________________
知识拓展
PWM技术对直流电机的控制
利用PWM技术可以控制灯光的明暗,它还可以控制直流电机的转速。设置模拟针脚值0~255(0是停止,255是最大值)。可以通过PWM控制电机的转速。
![](https://epubservercos.yuewen.com/18FD25/15367250905335706/epubprivate/OEBPS/Images/figure_0028_0003.jpg?sign=1739670688-DiLymefuzusx3E7BbVFSguzVKoTbD2Fu-0-a537f6266c39627d8a31e3d394fc8f5c)