Page Title

第2课 在Arduino中使用单色LED——创意灯光秀


2019-07-31 14:50:24

  blob.png

自从20世纪60年代研制出能够发出红色光的LED以来,经过几十年的发展,目前的LED已能发出红、橙、黄、绿、蓝等多种有色光。本课我们将使用3个单色LED模块,制作一场创意灯光秀。

 

blob.png

要制作本课的范例作品,需要使用以下硬件模块:

 

扩展板


扩展板是可以堆叠接插到Arduino上的电路板,不同的扩展板有不同的功能。

由于本书的使用对象是中小学生,因此使用了可以直接将各种传感器、执行器模块连接到Arduino主控板上的扩展板,省去了繁琐的器材连接,也大大减少了各类故障的发生。很多厂商都生产这类扩展板,本书使用的是“好好搭搭”生产的UNO扩展板(如下图2-1所示)。


 blob.png


 
    图2-1 “好好搭搭”UNO扩展板

单色LED模块


 

LED的中文名称叫做“发光二极管”,它是一种可以把电能转化成光能的电子元件。经常在电路以及仪器中作为指示灯使用,也可以用于显示文字或者数字,随着技术的发展,目前也广泛用于日常生活照明。

在“好好搭搭”的Arduino造物套装中就包含有4种单色LED模块,分别可以发出红、黄、绿、白四种颜色的光线(如下图2-2所示)。


 blob.png

     图2-2 单色LED模块和3针引线

 

注:“好好搭搭”Arduino造物模块利用贴片技术,将元器件都集成在一起,通过一个三针或者四针的插座连接电源、交换数据。如上图2-2所示的LED模块插座是三针的:分别是接地的“G”、接电源的“V”、接数字信号的“S”。

 

连接线


 

连接线用来连接造物模块和Arduino扩展板。“好好搭搭”的Arduino造物套装中的连接线共有两种,一种是由绿、红、黄三根线线组成的,叫做3P的连接线;另一种是由绿、红、黄、蓝四根线线组成的,叫做4P的连接线(如下图2-3所示)。连接线一头是白色的插头,用于连接各种造物模块;另一头是黑色的插头,用于连接扩展板的各类端口。

blob.png


要制作本课的范例作品,还需要使用以下新的指令:
2-3 3P4P连接线

 

blob.png

 

使用“设置数字口输出”指令可以设置连接到指定端口LED的输出值。指令默认数字口为“2”、输出值为“1”。单击第一个下拉菜单会出现0-13A0-A520个选项,根据扩展板上的接口设置,实际应用中可以选择“2”、“3”、“4”、“9”、“10”、“11”、“12”、“13”这8个数字口以及A0A34个模拟口。单击第二个下拉菜单,有“1”和“0”两个选项,即输出值可以设置为“1”或者“0”,也就是“点亮”或者“关闭”LED

 

blob.png

要制作本课的范例作品,需要使用以下器材:

²  UNO主控板和配套的扩展板

²  红、黄、绿三种颜色的单色LED模块各一个

²  3P连接线:三根

 

第一步:搭建硬件、运行插件                       


 

要搭建本课的范例作品硬件,可以按以下步骤操作:

1.      UNO扩展板插入到UNO主控板上。

2.      找到33P连接线,将每根连接线的白色插头插入单色LED模块的接口中;插的时候注意:白色插头具有防呆功能,可以防止插反。

3.      将连接红色LED模块的3P连接线黑色的一头插入扩展板中间的11号端口,插的时候注意:黑色插头不具有防呆功能,要确保连接线每根线的颜色和扩展板插座针脚的颜色相同。

4.      用同样的方法,将黄色LED模块连接线插入10号端口、绿色LED模块连接线插入9号端口;

具体器材连接方式如下图2-4所示:


blob.png

2-4 “创意灯光秀”范例作品硬件连接图

 

注:不同厂商生产的模块和连接线,颜色定义可能并不相同。但可以根据模块和扩展板插座边上标注的字母来对应:也就是接地的“G”对应“G”、电源“V”对应“V”、数字信号“S”对应“S”。

5.      USB线把主控板和计算机连接起来,打开“好好搭搭硬件下载”插件,选择“型号”为“UNO”,确认插件程序左下角的端口和型号显示正确。

 

第二步:进入网站、了解指令                       


 

打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“创作模版”网页中选择“Arduino”模版,进入“模版项目页”;在“模版项目页”中单击网页右上角的“转到设计页”按钮,进入“Arduino编程设计页”。

单击“脚本”选项卡的“更多模块”类别,找到“设置LED输出”指令,将这个指令拖动三个到脚本区,设置端口分别为“9”、“10”、“11”,输出值分别为“1”、“0”、“1”。具体程序代码如下图2-5所示:


blob.png


2-5 “设置LED输出指令测试”程序代码

blob.png

将上图2-5所示程序编译后下载到主控板,运行后观察3LED亮灭的情况,将结果记录在下面的表格上。

 

 

blob.png

我发现:________________________________________________________________

_______________________________________________________________________

 

第三步:让LED闪烁                  


 

所谓的“闪烁”,其实就是设置LED快速地亮灭。下面以范例中的红色LED闪烁为例,介绍具体的制作步骤:

1.      要让红色LED闪烁,应该先初始化,设置红色LED模块处于“灭”的状态;也就是设置所在的“11”号端口输出为“0”。

2.      使用“控制”类别中的“重复执行”指令:每次重复都是先设置红色LED所在的“11”号端口输出值为“1”、等待时间为“0.2”秒;再设置这个端口输出值为“0”、等待时间也是“0.2”秒。这样红色LED就会以0.2秒为间隔一直闪烁。

具体程序代码如下图2-6所示:


 blob.png



2-6 “红色LED闪烁”程序代码

blob.png

除了让一个LED闪烁,你还能够编写两个、甚至三个LED同时闪烁的程序吗?

 

 

第四步: 制作流水灯                      


 

所谓的“流水灯”,一般是三个或者三个以上的LED,依次点亮。下面以范例中的红、黄、绿这三个LED制作流水灯为例,介绍具体的制作过程:

1.      先初始化,设置三个LED模块都处于“灭”的状态,也就是设置“11”、“10”、“9”三个端口输出都是“0”。

2.      使用“控制”类别中的“重复执行”指令:每次重复都是先红色LED亮(也就是“11”号端口输出“1”)、其它LED灭,等待“0.5”秒;再黄色LED亮(“10”号端口输出“1”)、其它LED灭,同样也等待“0.5”秒;接着绿色LED亮(“9”号端口输出“1”)、其它LED灭,同样等待“0.5”秒。这样三个LED就会依次点亮。

具体程序代码如下图2-7所示:


blob.png

 



2-7 “流水灯”程序代码

blob.png

与同学合作,在扩展板上再多接几个LED,让流水灯的效果更出色。

 

 

blob.png

 

除了范例中的闪烁、流水灯,你还能够想出其它更有创意的灯光效果吗?

我打算这么做:_______________________________________________________

______________________________________________________________________

做的时候需要注意:____________________________________________________

______________________________________________________________________