3、电机驱动核心:H桥电路原理、L298N与TB6612驱动芯片对比、驱动电路搭建

好,咱们进入电机驱动的核心环节。说实话,搞点钞机最怕什么?不是电机转不起来,而是转起来之后突然卡住,然后——啪,烧了。所以这一章,我带你彻底搞懂H桥怎么工作,以及怎么选驱动芯片。

3.1 H桥电路原理:说白了就是个换向开关

H桥这个名字,你看它的电路图就明白了。四个开关管(通常是MOS管或三极管)摆成"H"字形,电机接在中间横杠上。嗯,就这么简单。

它的核心任务就两个:让电机正转,或者反转。怎么做到?

  • 正转:左上和右下导通,电流从左往右流过电机。
  • 反转:右上和左下导通,电流从右往左流过电机。
  • 刹车:同时导通上管或同时导通下管,电机两端短路,快速停转。
  • 滑行:四个管子全关,电机靠惯性自由转动。

关键点来了:绝对不能让左上和右上同时导通!那叫"直通",相当于直接把电源正负极短路。我见过不少新手焊完板子一上电,管子直接冒烟。嗯,那味道,一辈子忘不了。

实际项目中,我们不会手动去开关这四个管子。太累了,而且容易出错。所以就有了专用的驱动芯片,比如L298N和TB6612。

3.2 L298N vs TB6612:老将与新秀的较量

这两款芯片我都用过,各有各的脾气。先看个对比表,心里有个底。

参数 L298N TB6612
工作电压 4.5V - 46V 2.7V - 13.5V
最大持续电流 2A(实际建议1A以下) 1.2A(峰值3.2A)
导通内阻 约2Ω(双极型晶体管) 约0.5Ω(MOS管)
PWM频率 最高约40kHz 最高约100kHz
封装 MultiWatt15(大体积) SSOP24(小体积)
价格 便宜(约5-8元) 稍贵(约8-12元)

你看,L298N电压范围宽,能驱动大电机。但它的内阻大,发热严重。我记得有一次做项目,L298N没加散热片,连续跑了10分钟,手都不敢摸——烫得能煎鸡蛋。

TB6612就不一样了。MOS管的内阻低,发热小很多。而且体积小,适合做在PCB上。不过它的电压上限只有13.5V,点钞机用的12V电机刚好卡在边缘。我个人习惯留点余量,所以会选TB6612,但前提是电源要稳。

我的建议:如果电机电流小于1A,优先选TB6612。如果电机电流在1-2A之间,或者电压超过12V,那就老老实实用L298N,但一定要加散热片。

3.3 驱动电路搭建:从原理图到实物

好,理论说完了,咱们动手。我以TB6612为例,因为它更适合点钞机这种小功率场景。

3.3.1 引脚功能速览

TB6612有16个引脚,但常用的就这几个:

  • VM:电机电源(2.7V - 13.5V)
  • VCC:逻辑电源(2.7V - 5.5V)
  • GND:共地
  • AIN1/AIN2:通道A的方向控制
  • PWMA:通道A的PWM调速
  • AOUT1/AOUT2:接电机A
  • BIN1/BIN2、PWMB、BOUT1/BOUT2:通道B同理
  • STBY:待机控制,高电平使能

3.3.2 典型接线图

别怕,接线其实很简单。我直接给你一个标准接法:

// TB6612 与 Arduino 接线示例
// 通道A控制一个电机

TB6612      Arduino
VM    ——>   12V电源正极
VCC   ——>   5V
GND   ——>   GND(与电源共地)
STBY  ——>   5V(一直使能)
AIN1  ——>   D8
AIN2  ——>   D9
PWMA  ——>   D10(PWM引脚)
AOUT1 ——>   电机正极
AOUT2 ——>   电机负极

嗯,这里要注意:VM和VCC是分开的。VM接电机电源,VCC接逻辑电源。我见过有人把两个接一起,结果逻辑部分烧了。为什么?因为电机启动时会把VM拉低,逻辑芯片就跟着掉电重启了。

3.3.3 控制逻辑表

控制电机其实就四个状态,记牢了:

AIN1 AIN2 PWM 电机状态
0 0 X 刹车(停止)
0 1 PWM 正转(速度由PWM占空比决定)
1 0 PWM 反转
1 1 X 刹车(更猛的刹车)

避坑指南:我曾经在调试时发现电机嗡嗡响但不转。查了半天,原来是STBY引脚没拉高。TB6612的STBY默认是低电平,芯片处于待机状态,你给什么信号它都不理你。所以,记得把STBY接到高电平。

3.3.4 实战代码片段

给你一段Arduino的示例代码,直接就能跑:

// TB6612 电机驱动示例
#define AIN1 8
#define AIN2 9
#define PWMA 10

void setup() {
  pinMode(AIN1, OUTPUT);
  pinMode(AIN2, OUTPUT);
  pinMode(PWMA, OUTPUT);
  
  // 初始状态:停止
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  analogWrite(PWMA, 0);
}

void loop() {
  // 正转,50%速度
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, HIGH);
  analogWrite(PWMA, 128);  // 0-255,128约50%
  delay(2000);
  
  // 停止
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  analogWrite(PWMA, 0);
  delay(1000);
  
  // 反转,75%速度
  digitalWrite(AIN1, HIGH);
  digitalWrite(AIN2, LOW);
  analogWrite(PWMA, 192);  // 约75%
  delay(2000);
  
  // 停止
  digitalWrite(AIN1, LOW);
  digitalWrite(AIN2, LOW);
  analogWrite(PWMA, 0);
  delay(1000);
}

这段代码很简单,但已经包含了正反转和调速的核心逻辑。你把它烧进Arduino,接上电机和TB6612,就能看到电机乖乖听话了。

3.4 驱动电路搭建的注意事项

最后,我总结几个实战中容易踩的坑:

  • 电源滤波:电机启动瞬间电流很大,会在电源线上产生尖峰。我习惯在VM引脚附近加一个100μF的电解电容,再加一个0.1μF的瓷片电容。一个滤低频,一个滤高频。
  • 地线处理:逻辑地和电机地要分开走线,最后在电源入口处单点接地。否则电机的大电流会干扰逻辑信号,导致误动作。
  • 散热问题:TB6612虽然发热小,但如果长时间满负荷运行,还是建议在芯片背面贴一个小散热片。L298N就更不用说了,散热片是标配。
  • 保护二极管:TB6612内部已经集成了续流二极管,但如果你用的是分立元件搭H桥,一定要在电机两端反向并联一个二极管,否则关断瞬间的反向电动势会击穿MOS管。

嗯,这一章的内容就到这里。H桥的原理你搞懂了,L298N和TB6612的区别也清楚了,电路搭建的要点也记住了。下一章,咱们就进入实战——用PWM调速,让电机转得又快又稳。