## 项目18 小风扇

**1.项目介绍：** 

在炎热的夏季，需要电扇来给我们降温，那么在这个项目中，我们将使用ESP32控制直流电机和小扇叶来制作一个小电扇。

**2.项目元件：**

|![Img](../media/afc52f6616725ba37e3b12a2e01685ad.png)|![Img](../media/a2aa343488c11843f13ae0413547c673.png)|![Img](../media/dae45d195fded43701882b0f36f21b98.png)|![Img](../media/c562656c96657983e724daed7c8d6202.png)|![Img](../media/3cc5c242c0f357b3dc496037a7d8bae8.png)|
| :--: | :--: | :--: | :--: | :--: |
|ESP32*1|面包板*1|直流电机*1|面包板专用电源模块*1|6节5号电池盒*1|
|![Img](../media/cc88893fe37f3488bc244f5eadaad7bd.png)|![Img](../media/ed228ff5627e0c8cc0c79fa04f1d4d16.png)|![Img](../media/8d920d12138bd3b4e62f02cecc2c63a3.png)|![Img](../media/4c49cdffc9e5e6f1aad838120d35897a.png)|![Img](../media/b4421594adeb4676d63581a1047c6935.png)|
|IC L293D*1|风扇叶*1|跳线若干|5号电池(<span style="color: rgb(255, 76, 65);">自备</span>)*6|USB 线*1|

**3.元件知识:**

![Img](../media/cc88893fe37f3488bc244f5eadaad7bd.png)

L293D芯片：L293D是一种直流电动驱动IC，在一些机器人项目中可用来驱动直流电机或步进电机。它共有16个引脚，可以同时驱动两路直流电机。输入电压范围：4.5 V ~ 36 V，每通道输出电流：MAX 600mA，可以驱动感性负载，特别是其输入端可以与主控板直接相连，从而很方便地受主控板控制。当驱动小型直流电机时，可以直接控制两路电机，并且可以实现电机正转与反转，实现此功能只需改变输入端的高低电平。市面上有许多采用L293D芯片的电机驱动板，当然我们也可以自己通过简单连接来使用它。

**L293D引脚图：**

![Img](../media/97c8f4ff850eae9035f4239902a163d3.png)
|引脚号| 引脚名称 | 描述 |
| :--: | :--: | :--: |
| 1 | Enable1 | 该引脚使能输入引脚Input 1(2)和Input 2(7)  |
| 2 | In1 | 直接控制输出1引脚，由数字电路控制 |
| 3 | Out1 | 连接到电机1的一端 |
| 4 | 0V | 接地引脚连接到电路的接地(0V) |
| 5 | 0V | 接地引脚连接到电路的接地(0V) |
| 6 |Out2 | 连接到电机1的另一端 |
| 7 | In2 | 直接控制输出2引脚。由数字电路控制 |
| 8 | +V motor | 连接到运行电机的电压引脚(4.5V至36V) |
| 9 | Enable2 |该引脚使能输入引脚输入3(10)和输入4(15) |
| 10 | In3 | 直接控制输出3引脚。由数字电路控制|
| 11 | Out3 | 连接到电机2的一端 |
| 12 | 0V | 接地引脚连接到电路的接地(0V) |
| 13 | 0V | 接地引脚连接到电路的接地(0V) |
| 14 | Out4 | 连接到电机2的另一端 |
| 15 |In4 | 直接控制输出4引脚，由数字电路控制|
| 16 | +V | 连接到+ 5V以启用IC功能 |

**面包板专用电源模块：**

![Img](../media/c562656c96657983e724daed7c8d6202.png)

**说明：**

此模块，能方便的给面包板提供3.3V和5V的电源，具有DC2.1输入（DC7－12V），另外，具备USB Type C接口的电源输入。

**规格：** 

 输入电压：DC座：7-12V；  Type C USB：5V 

 电流：3.3V：最大500mA；        5V：最大500mA；

 最大功率: 2.5W

 尺寸: 53mmx26.3mm

 环保属性: ROHS

**接口说明：**

![Img](../media/9ab1fa7ff5eccecdc0fe6218fad6df79.png)


**原理图：**

![Img](../media/5139ee652d196f215b53c35d8ab24166.png)

**4.项目接线图：**

![Img](../media/4db80022a55000760247365dc0d3db81.png)

(<span style="color: rgb(255, 76, 65);">注: 先接好线，然后在直流电机上安装一个小风扇叶片。</span>)

**5.代码说明：**

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

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

这 2 个指令方块都可以用来设置直流电机(小风扇)不转。

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

设置直流电机(小风扇)逆时针转动。

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

设置直流电机(小风扇)顺时针转动。

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

设置ledc通道0，频率为1200，PWM分辨率为8，占空比为256；将ledc通道0绑定到指定的ENA_pwm引脚 IO0 进行输出。

**6.项目代码：**

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

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

2. 从 “![Img](../media/img-20241030153108.png)” 拖出 “![Img](../media/img-20241030153046.png)” 放入 “![Img](../media/img-20241023140106.png)” ，INA 管脚为 2 ，INB管脚为 15 ，将 “高” 都改成 “低” 。

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

3. 从 “![Img](../media/img-20241030153108.png)” 拖出 “![Img](../media/img-20241105115542.png)” 放入 “![Img](../media/img-20241023140106.png)” ，模拟输出管脚为 0 ，通道为 CHO(LT0) ，赋值为 0 。

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

4. 复制代码块 “![Img](../media/img-20241105130202.png)” 1 次 ，将 INB 后面的 “低” 改成 “高”，模拟输出管脚 0 后面的赋值 0 改成 250 ；再从 “![Img](../media/img-20241023140031.png)” 拖出 “![Img](../media/img-20241023140625.png)”，设置延时为5000毫秒。

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

5. 复制代码块 “ ![Img](../media/img-20241105130532.png) ” 1 次，将 模拟输出管脚 0 后面的赋值 250 改成 0 ，延时5000毫秒改成2000毫秒。

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

6. 复制代码块 “![Img](../media/img-20241105130745.png)” 1 次，将 INA “低” INB “高” 改成 INA “高” INB “低” ，其他的不变。

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

完整代码：

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


**7.项目现象：**

编译并上传代码到ESP32，代码上传成功后，外接电源，上电后，你会看到的现象是：小风扇先逆时针转5秒，停止2秒，再顺时针转5秒，停止2秒，以此规律重复执行。

![Img](../media/01b209288c5b8f58eec50a7f9bc5e33d.png)