Arduino创意机器人入门
上QQ阅读APP看书,第一时间看更新

第2课 闪烁LED

灯是我们最常见的家用电器之一,已经成为日常生活中必不可少的电器。我们可以通过开关或者声音控制灯的亮灭,那么能否用Arduino实现这种控制呢?这节课我们要使用Arduino制作一个闪烁的LED。

任务导航

1.熟悉ArduBlock;

2.搭建电路;

3.制作一个闪烁的LED。

材料阅读

1.ArduBlock

ArduBlock(见图2.1)是一款为Arduino设计的图形化编程软件,是Arduino官方编程环境(Arduino lDE)的第三方软件,目前必须依附于Arduino lDE运行。ArduBlock是使用图形化积木搭建的方式编程的,该方式加强了编程的可视化和交互性,降低了编程门槛,即使是没有编程经验的人,也可以尝试给Arduino控制器编写程序。除此之外,我们还可以对程序进行批注。

图2.1 ArduBlock编程环境

ArduBlock有多个版本,本书使用的是为本书量身定制的教育版。ArduBlock的安装并不复杂,只要将下载的压缩包中的libraries和tools文件夹复制到Arduino的安装目录下,重新运行Arduino lDE,单击“工具”中的“ArduBlock”便可以启动。

ArduBlock教育版下载地址:http://blog.sina.com.cn/s/blog_6611ddcf0101kfs7.html

ArduBlock程序中的各个模块都是从左侧的模块库里“拖进”编程界面的,然后用这些模块积木进行拼接,拼接正确时会发出 “咔”的一声清脆响声。如果要删去模块,直接把不需要的模块“拖回”左侧区域即可。当我们编写好程序后,单击窗口上方的“上载到Arduino”按钮,会发现Arduino文本式编程环境上的“上传”图标也开始工作了,而且在文本式的编程环境里还生成了对应的代码。程序上传成功之后,文本式的编程环境下面会提示“上传成功”。

2.Arduino与LED模块的连接

LED(Light Emitting Diode,发光二极管)是一种能够将电能转化为可见光的固态半导体器件,如图2.2所示。它具有体积小、耗电量低、亮度高、热量低、使用寿命长等特点,是Arduino作品中实现光效功能的最佳选择。一般来说,LED接到Arduino上,需要串联保护电阻。

图2.2 发光二极管

本书所使用的LED发光模块是由DFRobot出品的数字食人鱼LED发光模块,如图2.3所示。该发光模块利用贴片技术(SMT)将LED二极管和保护电阻集成在一起,然后引出3针接口,我们通过3针引线将LED发光模块插到Arduino的数字口上即可。

图2.3 LED发光模块

不管是LED发光模块还是连接到Romeo控制器的其他元器件,一般有3条连接线,分别为电压、信号以及地线。这3条线分别连接电压、数字/模拟口、地。以LED发光模块与控制器的连接为例,示意图以及实物连接图如图2.4和图2.5所示。

图2.4 控制器与LED发光模块的连接示意图

图2.5 控制器与LED发光模块的接连实物图

接好线之后要记住连接的针脚端口号,如图2.5所示接的是数字针脚3。这里要提醒大家的是,在接线时,黑色的线接黑色的针脚,即GND;红色的线接红色针脚,即VCC;绿色的线接信号针脚,即D。除此之外,数字针脚0和1用于计算机和Arduino之间的通信,其中数字针脚0用于接收信号,数字针脚1用于发送信号,所以在接线时要尽量避开这两个针脚。

3.制作闪烁的LED

数字口的值为1或0,对应高电平或低电平。我们使用的这款LED发光模块,高电平可以点亮LED,而低电平则可以熄灭LED。

其中“延迟”模块的功能是持续执行上一个模块,例如延迟1000ms(毫秒),指的是上一个模块会持续执行1000ms。

动手操作

活动主题1:制作闪烁的LED

在了解了Arduino的相关知识、熟悉了ArduBlock编程环境之后,我们自己动手制作闪烁的LED吧。

1.硬件搭建

器材:Romeo控制器、LED、USB数据线。

连接硬件时可参考图2.4,连接LED发光模块与控制器时,要注意黑线接GND,红线接5V,第三根线接数字针脚,同时要记住接的针脚号。注意不要接在数字针脚0和1上。

2.参考程序(见图2.6)

图2.6 闪烁LED程序

活动主题2:模拟交通灯

红灯亮A秒之后灭掉,绿灯亮B秒之后灭掉,黄灯亮C秒之后灭掉,依次类推。

1.硬件搭建

器材:Romeo控制器、3个LED发光模块、USB数据线。

将3个LED发光模块分别连接到控制器的数字口,例如数字针脚3、4、5。连接示意图及实物图如图2.7和图2.8所示。

图2.7 交通灯连接示意图

图2.8 交通灯连接实物图

2.参考程序(见图2.9)

图2.9 模拟交通灯程序

探究思考

日常生活中哪些地方用到了LED?这些LED有什么功能?有什么效果?

视野拓展

全彩LED

前面使用的LED发光模块,尽管有红、绿、蓝等多种颜色,但是只能显示一种颜色。其实,还有一种类型的LED可以显示多种颜色,这类LED被称为全彩LED。全彩LED内置了红(Red)、绿(Green)和蓝(Blue)三种颜色的灯珠,可根据三原色的原理调出多种颜色。常见的LED大屏幕都是利用这种原理进行调色,呈现出全彩的效果的。

图2.10 8×8 LED RGB Matrix

8×8 LED RGB Matrix是由DFRobot出品的一个xy轴可任意级联的三色全彩LED显示矩阵模块,如图2.10所示。它可以显示图片和文字,支持多图层和各图层的各种平移效果。

挑战自我

大家已经学会了制作闪烁的LED,想想还能做哪些效果的LED?流水灯的效果能否实现?