---
description: Arduino | 直流电机
---

# Arduino直流电机

在本Arduino教程中，我们将学习如何使用Arduino控制直流电动机。 我们将介绍一些用于控制直流电动机的基本技术，并举两个例子，通过它们我们将学习如何使用L298N驱动器和Arduino板来控制直流电动机。

### 概述

我们可以通过简单地控制直流电动机的输入电压来控制直流电动机的速度，最常用的方法是使用PWM信号。

### PWM直流电动机控制

PWM或脉冲宽度调制是一种技术，它使我们能够通过快速打开和关闭电源来调整流向电子设备的电压平均值。 平均电压取决于占空比，或者信号开启的时间量与信号在单个时间段内关闭的时间量有关。

因此，根据电动机的大小，我们可以简单地将Arduino PWM输出连接到晶体管的基极或MOSFET的栅极，并通过控制PWM输出来控制电动机的速度。 低功率Arduino PWM信号在MOSFET的栅极上打开和关闭，通过该MOSFET驱动高功率电机。

### H桥直流电动机控制

另一方面，为了控制旋转方向，我们只需要反转流过电动机的电流的方向即可，最常用的方法是使用H桥。 H桥电路包含四个开关元件，晶体管或MOSFET，并且位于中心的电机形成类似H的配置。 通过同时激活两个特定的开关，我们可以改变电流的方向，从而改变电动机的旋转方向。

因此，如果我们结合使用PWM和H桥这两种方法，就可以完全控制直流电动机。有许多具有这些功能的直流电动机驱动器，L298N就是其中之一。

### L298N驱动程序

L298N是双H桥电机驱动器，它允许同时控制两个直流电机的速度和方向。该模块可以驱动电压在5到35V之间的直流电动机，峰值电流高达2A。

让我们仔细看看L298N模块的引脚排列，并说明其工作原理。 该模块有两个用于电动机A和B的螺钉端子块，另一个用于接地引脚，电动机的VCC和5V引脚的螺钉端子块，它们可以是输入或输出。

这取决于电动机VCC上使用的电压。 该模块具有一个板载5V稳压器，可使用跳线将其启用或禁用。 如果电机电源电压高达12V，我们可以启用5V稳压器，并且5V引脚可以用作输出，例如为Arduino板供电。 但是，如果电动机电压大于12V，则必须断开跳线，因为这些电压会损坏板载5V稳压器。 在这种情况下，5V引脚将用作输入，因为我们需要将其连接到5V电源以使IC正常工作。

我们在这里可以注意到，该IC的电压降约为2V。例如，如果我们使用12V电源，则电机端子上的电压约为10V，这意味着我们将无法从12V DC电机中获得最大速度。

接下来是逻辑控制输入。 Enable A和Enable B引脚用于启用和控制电动机的速度。 如果此引脚上有跳线，则将启用电动机并以最大速度工作，如果我们卸下跳线，则可以将PWM输入连接到此引脚，并以此方式控制电动机的速度。 如果我们将此引脚接地，则电机将被禁用。

接下来，输入1和输入2引脚用于控制电动机A的旋转方向，输入3和4用于电动机B的旋转。使用这些引脚，我们实际上控制了L298N IC内部的H桥的开关。 如果输入1为低电平而输入2为高电平，则电动机将向前移动，反之亦然，如果输入1为高电平且输入2为低电平，则电动机将向后移动。 如果两个输入相同，则LOW或HIGH电机将停止。 输入端3和4以及电机B同样如此。

### Arduino和L298N

现在让我们进行一些实际的应用。在第一个示例中，我们将使用电位计控制电动机的速度，并使用按钮更改旋转方向。这是电路原理图。

因此，我们需要一个L298N驱动器，一个直流电动机，一个电位计，一个按钮和一个Arduino板。

### Arduino代码

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
