在真实的SLAM机器人设计当中,直流编码电机的驱动电路是不可缺少的。常见的有L298N电机驱动、TB6612电机驱动、A4950电机驱动等内容。对于电力的驱动,我们需要的是控制电机的转向和转速,这个的实现,需要一个”H“桥电路。

​ 这个电路是”H“桥电机驱动的原理,真正的实现并不是这样,但是你可以使用三个MOS管来进行更大功率的电机驱动设计。我们使Q1和Q4同时导通、Q2和Q3导通,即可对应电机的正反转。我们通过调节基极信号的强弱可以实现对转速的控制。

​ 但是这也的设计有个很大的弊端,猜想一下!如果Q1和Q2同时导通、或者Q3和Q4同时导通、或者Q1、Q2、Q3、Q4同时导通,会发生什么?

​ 会爆炸!

​ 这种情况下,相当于电机的驱动电路处于短路状态。

​ 根据这一理论,厂商们设计了更加安全、稳定、可靠的电机驱动芯片。

​ 我们先来看一下L298N电机驱动芯片。这个系列的芯片分为直插式的L298N和贴片式的L298P,它们的功能是一样的,只是结构方面有所不同。

​ 芯片15块钱,模块6块钱。能用模块绝不用芯片!L298N/L298P的驱动电路如下所示。

​ 这个电路是L298N电机驱动模块的电路,右下角部分是使用7805电源模块,实现12V转5V的功能。电阻R3和LDE组成了电源指示灯,由于7805的耐压值是在15V,这里使用了跳线帽,当驱动电压低于15V的情况下可以是12V转5V为单片机供电,若驱动电压高于15V,这里需要断开,单片机供电另外想办法,7805超过15V的情况下会烧掉,建议在12V以内进行工作(包括12V)。三个电容C1、C2和C3的作用这里就不说了,就是滤波。

​ 在L298N电机驱动的左侧,有IN1、IN2、IN3、IN4四个方向引脚,这四个引脚两两一组控制电机转向;有ENA、ENB两个使能引脚,控制两个电路的转速。右侧的OUT1、OUT2、OUT3、OUT4分别接两组直流电机即可。ISENA和ISENB两个引脚是电流检测,这里我们不使用直接接GND即可。VS是驱动电压,VSS是信号电压。

​ 什么是驱动电压?什么信号电压?电源和信号的隔离是什么?它们是怎么隔离的?它们为什么要隔离?共地又是什么?我们一点点来说。

​ 我们以L298N电机驱动为例,这里有两个电压,一个是12V,这部分电压是电机的驱动电压,它作用在VS、OUT1、OUT2、OUT3、OUT4这几个引脚,负责的电机的功率输出。另一个是5V,这部分电压是单片机系统运行的电压,也是单片机IO引脚的电压,作用在IN1、IN2、IN3、IN4、ENA、ENB六个引脚,主要为信号电平。

​ 驱动电压就像是加在三极管的集电极和发射极,而信号电压就像是加在三极管的基极和发射极。

​ 这个成立吗?不成立!功能是这样吗?是这样!

L298电机驱动的使用也很简单,如下所示。

然后我们再来聊聊另一种电机驱动芯片——TB6612!

这个模块电路相当简洁,只有一个芯片+三个电容组成。

三个电容分别进行滤波操作即可,这里相比L298芯片多了一个STBY引脚,改引脚具备使能功能控制,当该引脚处于高电平的情况下,才会对电机具备电流输出的能力。驱动逻辑和L298相同。

原理图的VMOT和VM之间多了一个IGBT——绝缘栅双极型晶体管,是由BJT(双极型三极管)和MOS(绝缘栅型场效应管)组成的复合全控型电压驱动式功率半导体器件, 兼有MOSFET的高输入阻抗和GTR的低导通压降两方面的优点。这里有了IGBT可以使“断开的时候更加平滑(后面讲到)”,这个IGBT可以不要。

TB6612和L298N的驱动逻辑是一样的,但是它们的驱动电流是不一样的,L298N最大可以支持2A的电机驱动电流,而TB6612最大却只有1.5A。

A1950电机驱动芯片也是经常用的,它的电压承受范围更大,而且最大支持2.5A的电流。它的驱动是通过两个PWM信号来实现的,它的电路也更加的简洁。

根据数据手册的内容,在PCB布线的时候,一定要注意LSS引脚上面的电阻距离!

VBB和GND提供驱动供电,VREF和GND提供信号供电,通过IN1和IN2两个引脚的PWM来实现电机转向和速度的控制(电机接在OUT1和OUT2)。

A4950 驱动是通过比较两个控制引脚输出PWM的大小关系来确定电机方向的,两个控制引脚输出PWM的差值决定电机的转速。

除了以上的三种之外,电机驱动的芯片还有很多,这里我列举的三种也是大家在做小车时候经常用到的电路。关于这些内容推荐大家一篇博客可以看下。电机驱动芯片——DRV8833、TB6612、A4950、L298N的详解与比较