3、电机驱动电路:H桥原理、MOSFET选型、驱动芯片介绍
好,咱们接着聊电机控制。前面讲了电机本身和编码器反馈,那谁来给电机供电、控制它正反转呢?答案就是驱动电路。我个人觉得,这部分是很多新手容易踩坑的地方——选错驱动芯片或者MOSFET,电机要么转不动,要么直接烧掉。
今天咱们就掰开揉碎,把H桥原理、MOSFET选型,还有L298N、DRV8833这些常用驱动芯片聊透。
3.1 H桥原理:电机正反转的核心
先问个问题:直流电机怎么让它反转?很简单,把电源正负极对调就行。但单片机不能直接干这事儿,它只能输出高低电平。这时候就需要H桥电路了。
H桥长什么样?四个开关管(通常是MOSFET或三极管)摆成"H"形,电机接在中间横杠上。我习惯这么记:左上+右下导通,电机正转;右上+左下导通,电机反转。
关键点:绝对不能同时导通同一侧的上下两个开关管!否则电源直接短路,瞬间冒烟。我在项目里见过有人调试时手抖了一下,MOSFET直接炸了,那味道...嗯,终身难忘。
H桥的四种工作状态:
- 正转:Q1和Q4导通,电流从左到右流过电机
- 反转:Q2和Q3导通,电流从右到左
- 刹车(短接制动):Q1和Q3导通(或Q2和Q4),电机两端短接,利用反电动势快速停转
- 滑行(高阻态):四个管子全关,电机自由转动
你想想看,如果只是简单控制正反转,那用继电器也行。但为什么非要用H桥?因为H桥可以PWM调速啊!通过调节导通占空比,就能控制电机转速,继电器可做不到这一点。
3.2 MOSFET选型:别让管子拖后腿
H桥里的开关管,现在主流都用MOSFET。为什么?因为它的导通电阻小、开关速度快、驱动功率低。但选型时要注意几个参数,我吃过亏才记住的。
| 参数 | 说明 | 我的建议 |
|---|---|---|
| VDS(漏源击穿电压) | 管子能承受的最大电压 | 选电机额定电压的1.5~2倍。比如12V电机,至少选20V以上的管子 |
| ID(漏极电流) | 管子能通过的最大持续电流 | 选电机堵转电流的1.5倍以上。别只看额定电流,堵转电流大得多 |
| RDS(on)(导通电阻) | 管子完全导通时的电阻 | 越小越好,否则发热严重。我一般选10mΩ以下的 |
| Qg(栅极电荷) | 驱动管子需要的电荷量 | 越小越好,否则高频PWM时驱动电路会吃力 |
避坑指南:我曾经选了一款看起来很合适的MOSFET,VDS和ID都够,结果一跑PWM就发热严重。后来发现是栅极驱动电压不够——5V单片机直接驱动,管子没完全导通,RDS(on)比标称值大了好几倍。所以,要么选逻辑电平型MOSFET(3.3V或5V就能完全导通),要么加一级驱动电路。
常用的N沟道MOSFET型号:IRLZ44N(逻辑电平型,55V/47A)、IRF540N(普通型,100V/33A)、AO4404(贴片,30V/12A)。P沟道的相对少用,因为导通电阻大、价格贵,一般只在高端驱动时用。
3.3 驱动芯片介绍:L298N vs DRV8833
自己搭H桥电路当然可以,但太麻烦了。现在市面上有很多集成驱动芯片,把H桥、保护电路、逻辑控制都封装在一起。我常用的两款:L298N和DRV8833,正好代表两个极端。
3.3.1 L298N:经典但笨重
L298N是ST公司老牌芯片,双H桥,能驱动两个电机。它的特点:
- 电压范围:4.5V~46V,适合大电压电机
- 电流能力:每通道2A(峰值3A),驱动普通直流电机够用
- 控制方式:IN1/IN2控制正反转,ENA使能PWM调速
- 缺点:压降大(约2V),发热严重,效率低。而且用的是双极型晶体管,不是MOSFET
说实话,L298N现在有点过时了。我在早期项目里用过,那发热量...得加散热片才能跑久一点。但它的优点是皮实耐造,新手拿来练手没问题。
典型接线:
// L298N控制直流电机(Arduino示例)
// 电机A:IN1=8, IN2=9, ENA=10
// 电机B:IN3=11, IN4=12, ENB=13
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop() {
// 正转,速度50%
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
analogWrite(10, 128); // 0~255
delay(2000);
// 反转,速度75%
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
analogWrite(10, 192);
delay(2000);
// 刹车
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(1000);
}
3.3.2 DRV8833:现代优选
DRV8833是TI公司的低压双H桥驱动芯片,专门为电池供电设备设计。它的特点:
- 电压范围:2.7V~10.8V,适合3.3V/5V系统
- 电流能力:每通道1.5A(峰值2A),驱动小型电机足够
- 控制方式:IN1/IN2控制正反转,PWM调速,还支持相位/使能模式
- 优点:内部MOSFET导通电阻仅0.3Ω,发热小,效率高。还有过流、过热保护
我个人非常喜欢DRV8833,尤其是做小型扫地机器人时。它体积小(QFN封装),外围电路简单,几个电容就能工作。而且它的休眠模式能把功耗降到微安级,对电池供电太友好了。
小技巧:DRV8833的nSLEEP引脚要拉高才能工作。我见过有人忘了接这个引脚,芯片一直处于休眠状态,电机纹丝不动。查了半天才发现是这个问题。
DRV8833的典型接线:
// DRV8833控制直流电机(Arduino示例)
// 电机A:AIN1=3, AIN2=4, PWM=5
// 电机B:BIN1=6, BIN2=7, PWM=9
void setup() {
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
// 正转,速度60%
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
analogWrite(5, 153); // 0~255
delay(2000);
// 反转,速度100%
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
analogWrite(5, 255);
delay(2000);
}
3.4 选型建议:到底用哪个?
我根据项目经验,给个简单的选型思路:
- 12V以上、大电流(>2A):用分立MOSFET搭H桥,或者用专用MOSFET驱动芯片(如BTN7971、VNH5019)
- 6V~12V、中等电流(1~2A):L298N能用,但效率低。我建议用TB6612FNG(东芝的,MOSFET型,效率高很多)
- 3.3V~6V、小电流(<1A):DRV8833是首选,体积小、效率高、保护齐全
嗯,这里要注意:驱动芯片的电流能力要看实际散热条件。标称2A的芯片,如果散热不好,可能只能跑1A。我一般会留50%的余量,这样芯片不会太烫,寿命也长。
最后说一句:驱动电路是电机控制的"肌肉",选对了事半功倍,选错了寸步难行。下次咱们聊PWM调速和电流检测,到时候你会更理解为什么驱动芯片这么重要。