第三章 多彩灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2123|回复: 1

第三章 多彩灯

[复制链接]
发表于 2022-2-8 15:43 | 显示全部楼层 |阅读模式
[md]## 点亮LED
### hello world

我们都知道,在各类程序语言,或者其他的编程过程中,第一个程序都是“Hello world”,那么Arduino中是否也有Hello world呢,当然是有的,不过叫做“Blink”,现在我们就在mixly我们采取积木式的搭建图形模块编程。Blink的作用就是让Arduino控制板的自带13号LED灯亮1秒,然后熄1秒,一直持续下去。

+ **程序编写**
01.jpg
打开mixly.exe,点击左上角的“输入/输出”选项,在弹出菜单中选择图画圈的模块,拖入工作区,我们可以看到,各种模块的形状有些像卡通积木,**只有能够拼接在一起的模块才能放在一起编出程序。** 在“控制”选项里,找到延时选项,拖入工作区,与前一条链接起来。后续的案例中,我们将用到更多的mixly左侧的各类模块区域,请各位自行查看使用,后续将不再累述。最终,我们得到如下图所示程序:
02.jpg
程序到此编写完成,看起来很简单明了。

+ **编译上传**
03.jpg
程序搭好了,我们在开发板选择区选择“Arduino/genuino Uno”开发板,**用USB数据线连接到电脑,串口选择你自己的串口,然后点击编译,等编译完成过后会显示“编译成功!”这时候就可以点击上传,** 这样你写的程序就上传到Arduino开发板上边了。本课程所有的Arduino例程都需要USB连接上传,后续不做累述。

+ **程序效果**

等程序上传完成过后,你就可以看到你的Arduino Uno主板上的“L”这个黄色的LED等在不停的闪烁,间隔1秒左右。

这里,我们见到了两个非常常用的模块——数字输出和延时。

数字输出是 Arduino 主板对元件的控制方式之一。它向电路传送数字信号0和1。0意味着输出低电平,电路不会接通;1则是输出指高电平,电路接通。

上面的程序中,将13号管脚的数字输出设为高,与其连接的板载 LED灯便会被点亮。经过1秒钟的延时(延时过程中,硬件保持延时开始时的状态,直到设定的时间结束),数字输出变为低,灯就会熄灭,之后保持熄灭状态1秒钟。

可以看到,板载LED灯在熄灭1秒后又重新亮了起来,1秒钟后又熄灭,如此重复下去。这是因为,Mixly和Arduino默认这段程序是重复执行的。如果没有其他干预,程序便会一直重复执行。

并且,灯总是亮 1 秒,灭 1 秒,这个重复不会发生变化。这是因为,这些程序的模块是按它排列的顺序执行的,主控板不会先执行第一个模块,然后跳过延时的模块,直接去执行第三个模块,或者是按任何与程序不一样的顺序执行。

### 点亮LED模块

上边我们点亮了Arduino主板上的L号黄色LED灯,那么我们是不是也可以点亮其他的LED灯呢,当然是可以的呢。这里我们将用到OpenJumper给大家提供的方便插接的扩展板了,随便找一个数字输入口,比如D10口,用我们套件里的3P连接线一端连接上一个LED模块,另外一遍插入扩展板D10口,连线方式如下图所示。LED实物图如下所示:
04.jpg
+ **硬件连接**

LED灯模块 —— D10口
05.jpg
+ **点亮LED程序编写**
06.jpg
编写完成后按照上述步骤将吃程序上传到已经连接好的Arduino Uno板子里,就可以看到连接在上面的LED模块已经开始一亮一灭。

+ **让LED越闪越快**

我们让外接的LED模块亮起来了,那么怎样让LED等越闪越快呢,我们可以直接将程序模块堆叠在一起,只是减少延时就行了。

硬件连接:LED灯模块 —— D10口 ,

然后就写成了下图这样:
07.jpg
这是从2000毫秒=2秒的时间开始,每次减少亮LED的时间500毫秒,这才4个循环,模块就这么长了,如果每次减少100毫秒,程序会变得更长,那么有没有模块可以很短就达到这样的功能呢?当然是可以的,下面我们将介绍一种新的模块,循环模块。

+ **循环模块程序编写:**
08.jpg
这就是我们编写的循环模块,这样子就可以实现了LED灯模块越闪越快了。这是为什么呢?在这里我们看程序模块中设置了一个“i”这个可以变化的的数,从1000到50,每次减少50,然后呢,我们的10号管脚输出的时间是“i”毫秒,因为i在不断的降低,这样子程序就一直在运行,每次“i”就减少50,然后再跑,循环进行,最后等到50毫秒的时候,就不再减少了,循环到此结束。

### 发散思维大课堂

上边我们讲了怎样用mixly点亮LED灯,并让他越闪越快。那么问题来了,我们可以让LED作出更多的动作行不行呢?所以在发散思维大课堂里,我们来思考以下几个问题,朋友们可以自己动手在mixly上练习下哦。

+ 让几个LED灯都亮起来;

+ 让LED灯越闪越慢;

+ 让LED灯快慢多次变化;[/md]
发表于 2022-5-13 11:53 | 显示全部楼层
学习了,谢楼主教程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 14:36 , Processed in 0.075686 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表