2020年11月25日第4卷第22期
现代信息科技
高效时间管理Modern Information Technology
Nov.2020 Vol.4 No.22
45
张晓龙任泉2020.11
收稿日期:2020-10-25
Arduino UNO控制多个LED实现多种特效
李娜1,孟东晓2
(1.天津市河东区职工大学 机电教研室,天津 300162;2.科斐凯博线缆(天津)有限公司,天津 301726)
摘 要:Arduino UNO 控制多个LED 实验在硬件连接不变的情况下,通过改变程序实现多种特效,展现不同的效果。将各项功能封装成不同的模块,初始化模块和其他功能模块组合可实现不同的功能特效。通过项目实例化教学手段举一反三引导学生深入思考,加深理解,让学生敢于灵活使用和改变程序,使学习过程更加生动。通过对功能模块设计和分析,Arduino UNO 控制多个LED 特效模块,达到操作使用简单明了,特效清晰直观的效果。
关键词:Arduino UNO ;LED ;项目实例化;模块化中图分类号:TP211;TN873
文献标识码:A
文章编号:2096-4706(2020)22-0045-03
Arduino UNO Controls Multiple LEDs to Achieve Multiple Special Effects
LI Na 1,MENG Dongxiao 2
(1.Department of Mechanical and Electrical Engineering ,Tianjin Hedong District Staff and Workers University ,Tianjin 300162,
China ;2.Coficab (Tianjin )Co.,Ltd.,Tianjin 301726,China )
Abstract :Arduino UNO controls multiple LED experiments ,under the condition that the hardware connection remains
unchanged ,various special effects are realized by changing the program to show different effects. The various functions are packaged into different modules ,and the initialization module and other function modules are combined to achieve different function special effects.
Through the teaching method of project instantiation ,we can draw inferences from one instance ,guide students to think deeply ,deepen their understanding ,let students dare to use and change the program flexibly ,and make the learning process more vivid. Through the design and analysis of functional modules ,Arduino UNO controls multiple LED special effect modules to achieve the effect of simple operation and clear and intuitive special effects.
Keywords :Arduino UNO ;LED ;project instantiation ;modularization
0 引 言
2020年我校创建“人工智能+传感器”实训课程体系,引入Arduino UNO 套件,深入研究开发相关课程内容,为创建适应我校发展的人工智能实训室奠定基础。作者在开发课程体系中研究发现Arduino UNO 控制多个LED 项目有待深入拓展和挖掘,以此激发学生思考,学习融会贯通,敢于创造创新。
Arduino 是2005年诞生于意大利的一种可编程单片机电路板,到现在已经有15年的历史。Arduino 是一个开源平台、采用知识共享协议,其硬件原理图和PCB 图、软件源码及其他资源都可以免费获得、使用、修改和再发布。随着时间的推移,Arduino 开发板的型号也在不断丰富,从Arduino UNO 、Arduino Mega 2560、Arduino Pro Mini 已经进化出多种不同的型号,但是Arduino UNO 开发板是最常见也是使用最多的一种型号。项目的研究就是建立在Arduino UNO Rev 3(下文简称Arduino UNO )开发板的基础之上。Arduino UNO 控制多个LED 是在控制单个LED 基础上进行延伸和拓展,具有硬件连接简单,实验特效多变,直观明了的特点。
1 总体结构设计
“人工智能+传感器”实训课程体系以Arduino UNO 为平台,围绕“传感器”元器件创建一系列实训课程,其中控制多个LED 项目是其中的基础入门课程。
1.1 结构设计
Arduino UNO 控制多个LED 包括硬件设计和软件设计两部分内容,硬件设计需要根据实验接线图完成接线。软件设计是项目设计的主要板块,根据目标分析,将程序分为初始化模块和循环体模块,初始化模块和不同循环体模块组合实现不同的特效。
1.2 硬件设计
Arduino UNO 控制多个LED 设计实验接线实物图如图1所示,接线原理图如图2所示,均采用Fritzing 电子设计软件制。使用Arduino UNO 一块,LED 6个,电阻(220 Ω)6个,面包板一块,杜邦线若干。图中所有LED 正极通过电阻分别与Arduino UNO 引脚2~7连接,LED 负极通过面包板与Arduino UNO 的GND 引脚连接。
1.3 软件设计
根据硬件系统控制要求,采用与Arduino UNO 对应的Arduino IDE 编程软件进行编程,程序主要分为初始化模块和循环体模块两大类,各循环体模块可与初始化模块独立组合,呈现不同的功能效果。
DOI:10.19850/jki.2096-4706.2020.22.012
图1 Arduino UNO控制多个LED接线实物图
2222
2
2
1111
1 1
LED1
Red(633 nm)LED2
Red(633 nm)
LED3
Red(633 nm)
LED4
Red(633
R1 220ΩR2
220Ω
R3
220Ω
R4
220
图2 Arduino UNO控制多个LED接线原理图
第22期
47
2020.11程序为:
for (thisPin=7; thisPin>1; thisPin--) //for 语句,指明引脚范围为7~2
{
digitalWrite(thisPin,HIGH); //定义引脚为高电平,LED 亮
delay(timer); //延迟100ms
朱亚文老婆名字
digitalWrite(thisPin,LOW); //定义引脚为低电平,LED 灭
}
(4)循环体模块三:LED 从右到左亮,再从右到左灭。模块三和模块二的主要为模块三的第一次循环只有亮的过程,第二次循环才是灭的过程。根据要求,模块中应包括两个for 循环,第一个for 循环引脚设置从2~7,逐个设置引脚为高电平,LED 从右到左亮,保持常亮;第二个for 循环,引脚设置从2~7,逐个设置引脚为低电平,LED 从右到左熄灭。
(5)循环体模块四:LED 1、3、5先亮,2、4、6再亮;LED 1、3、5先灭,2、4、6再灭。根据模块功能要求,可以知道需要四个循环体来实现相关功能,循环体1实现LED 1、3、5先亮,循环体2实现LED 2、4、6后亮,循环体3实现LED 1、3、5先灭,循环体4实现LED 2、4、6后灭。分析LED 1、3、5对应的引脚为7、5、3,故初始化引脚设定为7,减量应为2。所以第一个和第三个for 循环应变更为for (intthisPin=7; thisPin>2; thisPin= thisPin-2)。LED 2、4、6对应的引脚为6、4、2,所以第二个和第四个for 循环应变更为for ( thisPin=6; thisPin>1; thisPin= thisPin-2)。
(6)循环体模块五:LED 从两边向中间亮,从两边向中间灭。模块五要求引脚7和2对应的LED 先亮,引脚6和3对应的LED 再亮,引脚5和4对应的LED 最后亮,熄灭过程也是如此。程序编写可以对引脚逐个控制,先对引脚7和2输出高电平,延迟一定时间,再对引脚6和3输出高电平,延迟一定时间,
最后对引脚5和4输出高电平。由于引脚7和2输出高电平的程序,顺序执行,间隔很短,眼睛看到的效果是引脚7和引脚2对应的LED 同时变亮。对引脚设置低电平即可实现两边向中间熄灭。设定引脚7和2为高电平的过程可以参考以下程序,其他引脚设置程序相同:int thisPin=7;
大棚养鸭digitalWrite(thisPin,HIGH);thisPin=2;
韩孝珠电影digitalWrite(thisPin,HIGH);delay(timer);
(7)循环体模块六:随机一个LED 闪烁,并在串口监视器上显示出引脚。根据题目要求,选择使用random 随机函数。random 语法格式random (Max )或random (Min ,Max ),由于引脚端口限制为2~7,所以此处选择random (Min ,Max ),返回值为Min 和Max 之间的随机数。随机数包含Min 不包含Max ,所以确定Min=2,Max=8,定义返回值引脚为高电平,此时LED 亮,若为低电平,LED 熄灭。在初始化中需要使用Serial 类库函数begin()建立与串口监
视器通信,在循环体中使用Serial 类库函数println()向串口监视器输出需要显示的引脚。该模块程序编写参考以下内容:
int thisPin=random(2,8);digitalWrite(thisPin,HIGH);
Serial.println(thisPin); //初始化中需要加入程序
“Serial.begin (9600);”设置通信波特率
delay(timer); //必须有一定的延迟时间digitalWrite(thisPin,LOW);delay(timer);
2 结 论
Arduino UNO 控制多个LED 在教学设计中采用项目实例化教学方法,教学过程中进行功能模块化设计辅助教学,利用教学反思手段拓展教学内容,培养学生创新创造能力,具体操作要求和注意事项如下所示:
(1)项目实例化教学即把教学内容形象化和实体化。学习各种编程语言都是建立在各种命令和函数基础之上,Arduino UNO 也不例外。熟练掌握Arduino UNO 的命令和函数是学好Arduino UNO 的基础。在学习过程中,学会将命令和函数应用在实例中,通过验证实例深刻理解命令和函数,并观察其所实现的效果,有助于将抽象的命令和函数形象化、实体化。
(2)功能模块化设计,逻辑清晰,功能直观。初始化模块和不同循环体模块组合将实现不同的功能特效,模块化处理方法有助于加强对Arduino UNO 控制多个LED 整体认识和理解。
(3)举一反三,在源程序基础上进行引申和创新。Arduino UNO 控制多个LED 实现的特效绝不仅仅是文中提到的这些效果,采用不同的函数组合会实现多种不同的效果。学生在学习中善于将题目进行
进一步的开发和探索,并观察实验效果,有助于加深对程序的理解,提升创新和创造能力。
Arduino UNO 是一款能实时展现编程效果,将软硬件结合得非常好的实用工具。Arduino UNO 开发板和套件组合能实现各种各样的实验,要注重在实验中检验学习理论,思考学习内容,总结学习方法,提升操作技能。
参考文献:
[1] 黄焕林,丁昊.从零开始学Arduino 电子设计 [M].北京:机械工业出版社,2018.
田丽写真[2] 陈吕洲.Arduino 程序设计基础:第2版 [M].北京:北京航空航天大学出版社,2015.
[3] 谭浩强.C 程序设计:第3版 [M].北京:清华大学出版社,2005.
[4] 彭秋洁,刘凯磊,康绍鹏,等.基于Arduino 的多功能自动跟随行李箱设计 [J].物联网技术,2020,10(8):63-65+70.
作者简介:李娜(1984—),女,汉族,山东泰安人,教师,讲师,硕士研究生,研究方向:电气自动化;孟东晓(1980—),男,汉族,山东聊城人,维修经理,工程师,学士学位,研究方向:电气自动化。
李娜,等:Arduino UNO 控制多个LED 实现多种特效
发布评论