## 项目07 流水灯

**1. 项目介绍：**

在日常生活中，我们可以看到许多由不同颜色的led组成的广告牌。他们不断地改变灯光(像流水一样)来吸引顾客的注意。

在这个项目中，我们将使用ESP32控制10个leds实现流水的效果。

**2. 项目元件：**

|![Img](./media/afc52f6616725ba37e3b12a2e01685ad.png)|![Img](./media/a2aa343488c11843f13ae0413547c673.png)|![Img](./media/325f351a1cc5c9af86988ddafd03fa19.png)|
| :--: | :--: | :--: |
|ESP32*1|面包板*1|红色LED*10|
|![Img](./media/a487df5effb3b0ae28e7601cad88c97b.png)| ![Img](./media/8d920d12138bd3b4e62f02cecc2c63a3.png)|![Img](./media/b4421594adeb4676d63581a1047c6935.png)|
|220Ω电阻*10|跳线若干|USB 线*1|

**3. 项目接线图:**

![Img](./media/img-20241030132632.png)

**4. 项目代码：**

本项目是设计制作一个流水灯。这是这些行动：首先打开LED 1，然后关闭它。然后打开LED 2，然后关闭…并对所有10个LED重复同样的操作，直到最后一个LED关闭。这一过程反复进行，以实现流水的“运动”。

你可以打开我们提供的代码，也可以自己编写代码，其如下：

1. 从 “![Img](./media/img-20241023140031.png)” 拖出 “![Img](./media/img-20241023140106.png)”。

2. 先从 “ ![Img](./media/img-20241024133608.png)” 拖出 “![Img](./media/img-20241028131724.png)” 放入 “![Img](./media/img-20241023140106.png)” 中；再从 “![Img](./media/img-20241024143857.png)” 拖出 “![Img](./media/img-20241028132058.png)” 放入 “![Img](./media/img-20241028131724.png)”中，将 “item” 改成 “ i ” 。

![Img](./media/img-20241030133527.png)

3. 从 “![Img](./media/img-20241023140031.png)” 拖出 “ ![Img](./media/img-20241030133339.png) ” 放入 “![Img](./media/img-20241023140106.png)”，从 1 到 10 步长为 1 改成从 12 到 22 步长为 1。

![Img](./media/img-20241030133609.png)

4. 先从 从 “![Img](./media/img-20241024131848.png)” 拖出 “ ![Img](./media/img-20241029171029.png) ”  放入 “ ![Img](./media/img-20241030133746.png)” ；再从 “ ![Img](./media/img-20241024133608.png)” 拖出 “ ![Img](./media/img-20241024133651.png) ” 放入 “管脚 <span style="color: rgb(255, 76, 65);">0</span> ” 处 ，“ 高 ” 改成 “ 低 ”。

![Img](./media/img-20241030160306.png)

5. 先从 “![Img](./media/img-20241023140031.png)” 拖出 “ ![Img](./media/img-20241030133339.png) ” ，从 1 到 10 步长为 1 改成从 12 到 22 步长为 1 ；又从 “![Img](./media/img-20241024131848.png)” 拖出 “ ![Img](./media/img-20241029171029.png) ” 放入 “ ![Img](./media/img-20241030133746.png)”；再从 “ ![Img](./media/img-20241024133608.png)” 拖出 “ ![Img](./media/img-20241024133651.png) ” 放入 “管脚 <span style="color: rgb(255, 76, 65);">0</span> ” 处 ；添加延时200毫秒。

![Img](./media/img-20241030134834.png)

6. 复制代码块 “ ![Img](./media/img-20241030134918.png) ” 1次，从 12 到 22 步长为 1 改成从 22 到 12 步长为 -1 ，“ 高 ” 改成 “ 低 ”。

![Img](./media/img-20241030135133.png)

完整代码：

![Img](./media/img-20241030160212.png)

**5. 项目现象：**

代码上传成功后，利用USB线上电后，你会看到的现象是：10个LED将从右到左点亮，然后从左到右返回。

![Img](./media/img-20241115082532.png)

![Img](./media/img-20241115082520.png)





