首页

基于L298N电机驱动的Arduino直流电机控制

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

概述

直流电机是初学者和爱好者遇到的最简单的电机。操作非常简单:将电机的两个引线连接到电池的两个端子上,瞧!你的马达开始转动。

如果你调换引线,即反转极性,电机就会反方向转动。事情就这么简单。

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

用PWM控制直流电动机速度

使用PWM技术,施加到直流电动机的电压平均值是通过以非常高的速率打开和关闭电源来控制的。这种转换的频率将在几十千赫兹的数量级。

现在,平均电压应用到直流电动机将取决于什么被称为占空比的PWM信号。PWM信号的占空比不过是信号处于ON或HIGH状态的时间与信号总周期的比值,即ON时间和OFF时间的和。

占空比通常用百分比表示,下图表示不同脉宽调制信号不同占空比为0%、25%、50%、75%和100%的12V电源。

用L298N PWM占空比控制Arduino直流电机

现在我们已经控制了直流电机的平均电压,我们如何将这个电压应用到电机上?这就是晶体管的用法。

来自任何来源的PWM信号,如本例中的Arduino,可以被给予MOSFET的门,根据PWM信号的占空比,直流电机的速度将会变化。

下图是一个简单的电路图,其中Arduino的PWM输出给MOSFET, 12V直流电机通过MOSFET连接。

利用L298N MOSFET实现Arduino直流电机控制

这个电路的代码如下所示。使用这个代码,Arduino将改变直流电机的速度在一个衰落的方式,即逐渐增加速度到峰值,然后逐渐减少速度到停止。

代码


这个电路可以很好地控制电机的速度,但不能有效地改变旋转方向。为了改变旋转方向而不每次都反转电机的引线,你需要使用一种叫做h桥的特殊电路。

用h桥控制直流电机

h桥是一种简单的电子电路,由四个开关元件组成,如晶体管(BJT或MOSFET),可以在不切换引线的情况下驱动电机向两个方向运行。

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

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

Arduino直流电机控制使用晶体管L298N h桥

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

如果控制输入A设置为高,B设置为低,那么晶体管Q2和Q3就会打开,通过电机的电流就会反向,因此旋转的方向也会相反。

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

使用晶体管进行有效的h桥连接是繁琐的。为此,市场上有专用的h桥电机驱动IC,两种常见的IC是L293D和L298N。

我们已经看到了如何在早期的项目中使用L293D控制直流电机的速度。在这个项目中,我们将关注更先进的L298N电机驱动程序,并看到Arduino直流电机控制使用L298N电机驱动程序使用PWM技术。

也读用arduino和l293d控制直流电机

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

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

下图为L298N集成电路多瓦封装(多引线电源封装)引脚图。

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

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

通常,L298N驱动程序作为模块提供,包含控制两个直流电机所需的所有必要的组件和连接器。一个这样的模块如下所示。我将解释这个模块的几个重要组件。

利用L298N电机驱动模块实现Arduino直流电机控制

L298N电机驱动模块由两个2针螺钉端子座组成,用于连接两个电机。它也有六个引脚公头,用于连接两个使能输入和四个输入引脚(每个电机两个)。

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

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

您也可以通过3-pin螺钉端子座中的第三个引脚访问这个调节5V。在电源电压高达12V时,3针螺钉端子附近提供的跳线必须接合,因为该跳线将使板载调节器生效。只有当跳线连接时,即电源电压为12V时,3脚螺钉端子的第三脚的5V输出才可用。这个5V输出可以用来为你的Arduino板供电。

如果电源电压大于12V,则拆下跳线,因为它可能损坏稳压器。在这种情况下,5V的逻辑电源到L298N IC是通过3脚螺钉端子的第三脚提供的。

用L298N实现Arduino直流电机控制

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

线路图

Arduino直流电机控制用L298N电路图

组件的要求

  • Arduino UNO [在这里买
  • L298N电机驱动模块[在这里买
  • 12 v直流电机
  • 100 kΩ电位计
  • 按钮
  • 12 v电源
  • 电路试验板
  • 连接电线

代码

应用程序

  • Arduino直流电机控制使用L298N电机驱动程序项目可以是许多高级项目的开始步骤。
  • 几乎所有的机器人都有轮子,我们需要控制与轮子相连的马达。因此,任何基于Arduino的机器人都可以使用L298N实现这种类型的电机控制。
  • L298N电机驱动器的一些机器人应用包括手势控制机器人、行追随者机器人、避障机器人等。

2反应

  1. 我试图使用双锅与中心制动器控制一个30A直流喷子电机。(正向和反向)。我可以为这个应用程序使用什么代码?

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
Baidu
map