新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 使用L298N电机驱动器控制Arduino直流电机

使用L298N电机驱动器控制Arduino直流电机

作者:时间:2023-04-21来源:电子产品世界收藏

在这个项目中,我们将看到如何使用和L298N器来控制一个直流电动机。有不同的方法来控制直流电动机,但由于许多原因,使用L298N器的直流电动机控制正在变得相当流行。

本文引用地址:http://www.eepw.com.cn/article/202304/445858.htm

概述

直流电动机是初学者和业余爱好者遇到的最简单的电动机。它的操作非常简单:将电机的两根导线连接到电池的两个端子上,然后就可以了!你的电机就开始旋转了。

如果你调换引线,即颠倒极性,电机将以相反的方向旋转。就这么简单。

如果你想控制一个简单的直流电动机的旋转速度,那么有一种技术叫做PWM直流电动机控制。这种技术产生的脉冲宽度调制或PWM信号将使我们能够控制输送到的平均电压。

使用PWM对直流电动机进行速度控制

使用PWM技术,应用于直流电动机的平均电压值是通过以非常高的速率打开和关闭电源来控制的。这种开关的频率将在几十千赫兹左右。

现在,应用于直流电动机的平均电压将取决于所谓的PWM信号的占空比。PWM信号的占空比是指信号接通或高电平的时间与信号总时间的比率,即接通时间和断开时间之和。

占空比通常以百分比表示,下图表示12V电源的不同PWM信号,占空比分别为0%、25%、50%、75%和100%。

Arduino DC Motor Control using L298N PWM Duty Cycle

使用L298N PWM占空比控制

现在我们已经控制了供应给直流电动机的平均电压,我们如何将这个电压应用到电动机上呢?这就需要使用晶体管了。

来自任何来源的PWM信号,如本例中的Arduino,可以给MOSFET的栅极,根据PWM信号的占空比,直流电动机的速度会有所不同。

下图显示了一个简单的电路图,从Arduino输出的PWM信号被送给一个MOSFET,12V直流电动机通过MOSFET被连接。

Arduino DC Motor Control using L298N MOSFET

使用L298N MOSFET的Arduino控制

这个电路的代码在下面给出。使用该代码,Arduino将以渐变的方式改变直流电动机的速度,即逐渐增加速度到峰值,然后逐渐降低速度到停止。

代码

这个电路对于控制电机的速度很好,但不是改变旋转方向的有效方法。为了改变旋转方向而不需要每次都把电机的引线反过来,你需要使用一个特殊的电路,叫做H桥。

使用H型桥控制直流电动机

H型桥是一个简单的电子电路,由四个开关元件组成,如晶体管(BJT或MOSFET),可以在两个方向上驱动电机,而无需切换引线。

H桥 "这个名字是指由四个晶体管和一个位于中心的电机组成的连接的外观,形成字母 "H"。

一个使用四个晶体管和一个电机的简单H型桥连接如下所示。通过同时激活两个特定的晶体管,我们可以控制流经电机的电流,从而控制旋转的方向。

Arduino DC Motor Control using L298N H-Bridge using Transistors

使用L298N H桥的Arduino直流电动机控制晶体管

上述电路中的两个控制输入A和B将决定电机的旋转方向。如果A为低电平,B为高电平,晶体管Q1和Q4将被打开,并允许电流按特定方向流过电机。

如果控制输入A为高电平,B为低电平,那么晶体管Q2和Q3将被打开,流经电机的电流被逆转,因此旋转的方向也被逆转。

通过结合这两个特点,即速度控制的PWM技术和方向控制的H桥连接,你可以完全控制一个直流电动机。

使用晶体管来进行有效的H桥连接是很繁琐的。为此,市场上有专门的H桥IC,两个常见的IC是L293D和L298N。

在前面的项目中,我们已经看到了如何使用L293D来控制直流电动机的速度。在这个项目中,我们将专注于更先进的L298N电机驱动器,看看Arduino直流电机控制使用L298N电机驱动器使用PWM技术。

关于L298N电机驱动器的简要说明

L298N电机驱动器IC是一个15引线的高电压、高电流电机驱动器IC,有两个全桥驱动器。L298N IC的逻辑电平与标准TTL兼容,可用于驱动不同的电感负载,如直流电机、步进电机、继电器等。

下图显示了L298N IC在Multiwatt封装(多引线电源封装)中的引脚图。

Arduino DC Motor Control using L298N Motor Driver Pin Diagram

使用L298N电机驱动器的Arduino直流电机控制引脚图

由于L298N电机驱动器IC是一个双全桥驱动器IC,你可以用单独的输入同时控制两个电机。逻辑电源电压为5V,但电机电源电压可高达45V。每个通道的峰值输出电流为2A。

一般来说,L298N驱动器是以模块的形式出现的,它包含了控制两个直流电动机所需的所有元件和连接器。一个这样的模块如下图所示。我将解释这个模块的几个重要组件。

Arduino DC Motor Control using L298N Motor Driver Module

使用L298N电机驱动模块控制Arduino直流电机

L298N电机驱动模块由两个2针的螺丝接线板组成,用于连接两个电机。它还有六个针脚的公头,用于连接两个启用输入和四个输入针脚(每个电机两个)。

有一个3针的螺丝端子板,你需要通过它给电机提供电源电压。如果使用的电机额定电压为12V或更低,那么通过这个螺丝端子给出12V电源,板载的5V稳压器将为L298N IC提供5V逻辑电源。

Arduino DC Motor Control using L298N Motor Driver Module Pins

使用L298N电机驱动模块引脚的Arduino直流电机控制

你也可以通过3针螺丝端子中的第三个引脚来获得这个稳压的5V。3针螺丝端子附近提供的跳线必须在电源电压达到12V时参与,因为这个跳线将启用板载的稳压器。3针螺丝端子的第三个针脚的5V输出只有在跳线参与时才可用,即电源电压为12V。这个5V输出可以用来给你的Arduino板供电。

如果电源电压大于12V,那么就去掉跳线,因为它可能会损坏稳压器。在这种情况下,L298N集成电路的5V逻辑电源是通过3针螺丝端子的第三针给的。

使用L298N控制Arduino直流电动机

现在我们将看到一个简单的电路,我们使用Arduino和L298N集成电路来控制直流电动机的速度和方向。这个项目需要一些额外的元件,完整的清单如下。在使用L298N的Arduino直流电机控制项目中,我们将使用PWM信号和L298N(H桥)的组合来控制一个简单的直流电机的功能,即速度和旋转方向。

电路图

Arduino DC Motor Control using L298N Circuit Diagram

使用L298N的Arduino直流电动机控制电路图

所需元件

Arduino UNO

L298N电机驱动模块

12V直流电动机  

100KΩ电位器  

按钮  

12V电源  

面包板  

连接线  

应用 

使用L298N电机驱动器的Arduino直流电机控制项目可以成为许多高级项目的开始。

几乎所有的机器人都有轮子,我们需要控制与这些轮子相连的电机。因此,任何基于Arduino的机器人都可以使用L298N实现这种类型的电机控制。

L298N电机驱动器的一些机器人应用是手势控制机器人、跟线机器人、避障机器人等。



评论


相关推荐

技术专区

关闭