> For the complete documentation index, see [llms.txt](https://qcmaker.gitbook.io/documents/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://qcmaker.gitbook.io/documents/software/tian-cheng-shi-li-cheng-xu/xiang-mu-yi-hello-world/ren-wu-2-2014-2014-rang-led-yue-shan-yue-kuai.md).

# 任务2——让LED越闪越快

## 1、任务目标

通过编写程序控制一盏单色LED灯使其越闪越快，第一次点亮后灯保持1S然后熄灭100ms，第二次点亮后保持900ms,然后熄灭，以此类推，第十次点亮100ms，熄灭100ms，然后开始点亮1S后熄灭，重复执行。

## 2、流程图

循环的次数通过变量 i 的大小来控制。所谓变量，就是在程序运行过程中大小发生变化的 量。循环执行过程中，变量 i 从 1000 开始，每次减小100，直到减小到 100，然后循环 结束。每次循环，都会执行一次包在其中的程序(这里就是控制灯亮灭的程序)。

![图3.1-4](https://2259527808-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSXCnLP-UwKYzUqiVCQ%2F-LU9mtZFe4rG7WymDnYv%2F-LU9n4-YfLFlUMnYGgkx%2Fimage198.jpg?generation=1545295647454791\&alt=media)

## 3、程序编程

首先来看这样一段程序，如图3.1-5所示:

![图3.1-5](https://2259527808-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSXCnLP-UwKYzUqiVCQ%2F-LU9mtZFe4rG7WymDnYv%2F-LU9n4-_9DFYszRaWlq4%2Fimage200.jpg?generation=1545295647537522\&alt=media)

![图3.1-6](https://2259527808-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSXCnLP-UwKYzUqiVCQ%2F-LU9mtZFe4rG7WymDnYv%2F-LU9n4-b90Bs1JMZHcNO%2Fimage202.jpg?generation=1545295650348682\&alt=media)

不难看出，图3.1-6这段程序是由图3.1-5所示的一小段不断重复而成的:

按照之前讲过的顺序执行原则，这一组模块就会一直重复下去。如果我们想让它执行很多次(比如 100 次)，一种办法就是，把 100 个这样的模块组前后连接在一起。

可想而知，如图3.1-7所示，编写的程序会非常长。并且，如果想知道它被重复执行了多少次，数起来也非常麻烦。那么，有没有一种模块，可以自动实现这个重复的过程，并且让人不怎么费力就知道重复执行了多少次呢?

![图3.1-7](https://2259527808-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSXCnLP-UwKYzUqiVCQ%2F-LU9mtZFe4rG7WymDnYv%2F-LU9n4-dzC6UoGTvag0W%2Fimage204.gif?generation=1545295647604533\&alt=media)

上面图3.1-7这段程序，实现了“重复”这个想法。它就是程序中常用的**循环结构**。如何理解这个循环结构呢?“使用 i 从 1000 到 100 步长为-100”这句话是什么意思呢?

循环的次数通过变量 i 的大小来控制。所谓变量，就是在程序运行过程中大小发生变化的量。循环执行过程中，变量 i 从 1000 开始，每次减小 100，直到减小到 100，然后循环 结束。每次循环，都会执行一次包在其中的程序(这里就是控制灯亮灭的程序)。

## 4、硬件连接

![图3.1-8](https://2259527808-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LSXCnLP-UwKYzUqiVCQ%2F-LU9mtZFe4rG7WymDnYv%2F-LU9n4-fcanOYixKRzye%2Fimage206.jpg?generation=1545295650529368\&alt=media)

写好程序后，单击上传按钮，将程序上传到甜橙主控板上，参考图 3.1-8。

注意：在上传程序之前，要设置好主控板型号和 COM 接口号，点击“上传”按钮右侧的下拉菜单即可设置。

## 5、Q\&A

Q：程序上传成功后，单色灯常亮，没有闪烁？

A1：检查程序，循环结构的步长是否为-100；

A2：检查程序，对否有单色灯熄灭和延时的程序块。

A3：检查硬件连接，线色的对应。

## 6、拓展

1、知识点总结

1）顺序结构；

2）循环结构；

3）单色灯的接线：注意线色对应。

2、相关案例：

1）点亮真实的LED灯（任务1）；s
