前边已经通过USB的5V电源使得TT马达可以转动起来了。我们要做得并不是一个竞速的玩具四驱车,所以必须要能够随心所欲的控制马达的转速,这样才能够实现循迹、避障和跟随等基本功能。TT马达的控制工作自然是交给了我们之前所选的ESP32芯片来完成了,但是可以把电机直接连接到ESP32的引脚上么?答案肯定是不能的。其主要的原因是芯片引脚的输出电压和电流都达不到TT马达正常工作的要求,就像人的力量不足以拉动一个火车一样。这个时候,我们就需要一个“力量”放大器,可以将我们的力量放大到可以拖动火车前进。而这个“力量”放大器就是本文所要介绍的电机驱动模块,它的作用就是可以将芯片的输出信号的电流进行放大,使其可以驱动TT马达转动。
电机驱动模块有很多,我们在选择的时候主要考虑2个因素,一个是模块所支持的电压,一个是能承受的最大电流。在这两方面最好都留有一定的余量。我们选择的以L298N芯片为核心的电机驱动模块,该芯片常用于控制直驱动流电机、步进电机等。它具有以下特点:
1.输出驱动能力较强,可以驱动电流较大的电机。
2.支持双路PWM控制,可以实现两个电机的速度和方向控制。
3.具有过热保护功能,可以保护芯片和电机免受过热损坏。
4.具有使能控制端,可以方便地控制电机的启动和停止。
总之,L298N是一种功能强大、易于使用的电机驱动芯片,广泛应用于各种电机控制系统中。其基本参数如下:
主控芯片:L298N 工作模式:H桥驱动(双路) 逻辑电压:5V-7V. 逻辑电流:0-36mA 驱动电压:5-35V,如需要板内取电,则供电范围7V-35V 驱动电流:2A(MAX单桥) 存储温度:-20℃到+135℃ 最大功率:25W 控制信号输入电压范围:低电平:-0.3V≤Vin≤1.5V 高电平:2.3V≤VinsVss 使能信号输入电压范围电平:-0.3≤Vins≤1.5(控制信号无效) 高电平:2.3V≤VinsVss(控制信号有效)通过上边的参数可以知道,L298N驱动模块的驱动电压为5-35V,完全覆盖了TT马达的正常工作时需要的电压范围,也符合我们之前采购的12V可充电电池的要求。而其最大电流达到了2A,也高于TT马达堵转时的电流,在电机堵转的情况下,也不会损坏驱动的L298N芯片。
每个L298N芯片可以驱动2个TT马达,所有我选择了拥有双芯片,四路输出的L298N电机驱动模块。如下图所示:
该模块的主要接口如下图所示:
这些接口的功能说明如下:
开关:是控制整个模块的电源开关。电源输入端子:为真个模块提供供电的电源接线端子。可接受的电压范围为直流5~35V。VCC为电源的正极,GND为电源的负极。电机控制输入:接负责控制的单片机输出管脚。从IN1开始,每两个为一组,共四组,可以控制4个直流电动机的工作情况。5V输出端子:对外提供5V直流供电。当使用这个端子为其他模块供电时,电源输入端的电压不应低于7V,否则此端口无法正常工作。使能端子:EN1~EN4分别控制第1~4路电动机是否工作。控制电机输出端子:用于连接被驱动的直流电动机的两端,自上到下每2个为一组,共四组。L298N的控制逻辑关系如下表所示:
控制端口 | EN1 | IN1 | IN2 | 电机1状态(接OUT1、OUT2) |
通道1 | 1 | 1 | 0 | 正转 |
1 | 0 | 1 | 反转 | |
1 | 0 | 0 | 停止 | |
1 | 1 | 1 | 停止 | |
0 | 0/1 | 0/1 | 停止 |
控制端口 | EN2 | IN3 | IN4 | 电机2状态(接OUT3、OUT4) |
通道2 | 1 | 1 | 0 | 正转 |
1 | 0 | 1 | 反转 | |
1 | 0 | 0 | 停止 | |
1 | 1 | 1 | 停止 | |
0 | 0/1 | 0/1 | 停止 |
控制端口 | EN3 | IN5 | IN6 | 电机3状态(接OUT5、OUT6) |
通道3 | 1 | 1 | 0 | 正转 |
1 | 0 | 1 | 反转 | |
1 | 0 | 0 | 停止 | |
1 | 1 | 1 | 停止 | |
0 | 0/1 | 0/1 | 停止 |
控制端口 | EN4 | IN7 | IN8 | 电机4状态(接OUT7、OUT8) |
通道4 | 1 | 1 | 0 | 正转 |
1 | 0 | 1 | 反转 | |
1 | 0 | 0 | 停止 | |
1 | 1 | 1 | 停止 | |
0 | 0/1 | 0/1 | 停止 |
通过上表可以简单的总结出来,当EN为高电平1时,如果两个输入端的高低电平不同,则电动机转动(此时变换高低电平,可使转动方向相反),输入端的电平相同,则电动机不转。
根据L298N模块的控制特性,我们在使用中可以有以下2种接线方法:
第一种方法是将使能端EN接高电平,保持一直可用的状态,然后通过单片机分别控制两个IN端,使用不同的波形来控制电机的转速和方向。
第二种方法是用单片机控制两个IN端分别是0和1来改变电动机的运转方向,再通过控制EN端的输入波形来调整电机的运转速度。
这两种接法的区别在于第一种只需要使用2个单片机引脚,而第二种则需要3个单片机引脚。但是,第一种要求这两个引脚都需要能输出不同波形的控制信号,而第二种方法则只需要一个能输出不同波形信号的引脚就可以了(另2个引脚只是控制高低电平的输出)。
好了,电机驱动模块——L298N就基本介绍到这里了,具体的接线方法和控制方法再后面还会做具体的讲解。