器来控制一个直流电动机。有不同的方法来控制直流电动机,但由于许多原因,使用L298N
直流电动机是初学的人和业余爱好者遇到的最简单的电动机。它的操作格外的简单:将电机的两根导线连接到电池的两个端子上,然后就可以了!你的电机就开始旋转了。
如果你想控制一个简单的直流电动机的旋转速度,那么有一种技术叫做PWM直流电动机控制。这种技术产生的脉冲宽度调制或PWM信号将使我们也可以控制输送到直流电机的平均电压。
使用PWM技术,应用于直流电动机的平均电压值是通过以非常高的速率打开和关闭电源来控制的。这种开关的频率将在几十千赫兹左右。
现在,应用于直流电动机的平均电压将取决于所谓的PWM信号的占空比。PWM信号的占空比是指信号接通或高电平的时间与信号总时间的比率,即接通时间和断开时间之和。
占空比通常以百分比表示,下图表示12V电源的不同PWM信号,占空比分别为0%、25%、50%、75%和100%。
现在我们已控制了供应给直流电动机的平均电压,我们如何将这个电压应用到电动机上呢?这就需要用晶体管了。
来自任何来源的PWM信号,如本例中的Arduino,可以给MOSFET的栅极,根据PWM信号的占空比,直流电动机的速度会有所不同。
下图显示了一个简单的电路图,从Arduino输出的PWM信号被送给一个MOSFET,12V直流电动机通过MOSFET被连接。
这个电路的代码在下面给出。使用该代码,Arduino将以渐变的方式改变直流电动机的速度,即逐渐增加速度到峰值,然后逐渐降低速度到停止。
这个电路对于控制电机的速度很好,但不是改变旋转方向的有效方法。为了改变旋转方向而不需要每次都把电机的引线反过来,你需要用一个特殊的电路,叫做H桥。
H型桥是一个简单的电子电路,由四个开关元件组成,如晶体管(BJT或MOSFET),可以在两个方向上驱动电机,而无需切换引线。
H桥 这一个名字是指由四个晶体管和一个位于中心的电机组成的连接的外观,形成字母 H。
一个使用四个晶体管和一个电机的简单H型桥连接如下所示。通过同时激活两个特定的晶体管,我们大家可以控制流经电机的电流,从而控制旋转的方向。
上述电路中的两个控制输入A和B将决定电机的旋转方向。如果A为低电平,B为高电平,晶体管Q1和Q4将被打开,并允许电流按特定方向流过电机。
如果控制输入A为高电平,B为低电平,那么晶体管Q2和Q3将被打开,流经电机的电流被逆转,因此旋转的方向也被逆转。
通过结合这两个特点,即速度控制的PWM技术和方向控制的H桥连接,你可以完全控制一个直流电动机。
使用晶体管来进行相对有效的H桥连接是很繁琐的。为此,市场上有专门的H桥电机驱动IC,两个常见的IC是L293D和L298N。
在前面的项目中,我们已看到了怎么样去使用L293D来控制直流电动机的速度。在这一个项目中,我们将专注于更先进的L298N电机驱动器,看看Arduino直流电机控制使用L298N电机驱动器使用PWM技术。
L298N电机驱动器IC是一个15引线的高电压、高电流电机驱动器IC,有两个全桥驱动器。L298N IC的逻辑电平与标准TTL兼容,可用于驱动不同的电感负载,如直流电机、步进电机、继电器等。
下图显示了L298N IC在Multiwatt封装(多引线电源封装)中的引脚图。
由于L298N电机驱动器IC是一个双全桥驱动器IC,你可以用单独的输入同时控制两个电机。逻辑电源电压为5V,但电机电源电压可高达45V。每个通道的峰值输出电流为2A。
一般来说,L298N驱动器是以模块的形式出现的,它包含了控制两个直流电动机所需的所有元件和连接器。一个这样的模块如下图所示。我将解释这个模块的几个重要组件。
L298N电机驱动模块由两个2针的螺丝接线板组成,用于连接两个电机。它还有六个针脚的,用于连接两个启用输入和四个输入针脚(每个电机两个)。
有一个3针的螺丝端子板,你一定要通过它给电机提供电源电压。若使用的电机标称电压为12V或更低,那么通过这一个螺丝端子给出12V电源,板载的5V稳压器将为L298N IC提供5V逻辑电源。
你也可以通过3针螺丝端子中的第三个引脚来获得这个稳压的5V。3针螺丝端子附近提供的跳线V时参与,因为这个跳线针螺丝端子的第三个针脚的5V输出只有在跳线参与时才可用,即电源电压为12V。这个5V输出可拿来给你的Arduino板供电。
如果电源电压大于12V,那么就去掉跳线,因为它可能会损坏稳压器。在这种情况下,L298N集成电路的5V逻辑电源是通过3针螺丝端子的第三针给的。
现在我们将看到一个简单的电路,个人会使用Arduino和L298N集成电路来控制直流电动机的速度和方向。这一个项目需要一些额外的元件,完整的清单如下。在使用L298N的Arduino直流电机控制项目中,我们将使用PWM信号和L298N(H桥)的组合来控制一个简单的直流电机的功能,即速度和旋转方向。
使用L298N电机驱动器的Arduino直流电机控制项目能成为许多高级项目的开始。
几乎所有的机器人都有轮子,我们应该控制与这些轮子相连的电机。因此,任何基于Arduino的机器人都能够正常的使用L298N实现这种类型的电机控制。
L298N电机驱动器的一些机器人应用是手势控制机器人、跟线机器人、避障机器人等。