第1章:直流有刷电机驱动:L298N/L9110S驱动芯片详解、正反转控制、刹车与滑行模式

各位同学,咱们今天正式开讲。第一章,我选了个最基础也最绕不开的话题——直流有刷电机的驱动芯片。你想想看,售货机里那些推货、出货的动作,十有八九是靠这些小电机完成的。而驱动它们,L298N和L9110S这两款芯片,几乎是入门标配。

我个人习惯,讲芯片之前先看实物。L298N个头大,像个老大哥,能扛2A电流;L9110S则小巧玲珑,适合小功率场合。嗯,这里要注意,选型不是越大越好,得看你的电机额定电流。

1.1 L298N驱动芯片详解

L298N是个双H桥驱动芯片。说白了,一个芯片能独立控制两个直流电机,或者一个步进电机。我最早接触它是在大学实验室,那时候觉得这芯片皮实耐造,怎么折腾都不坏。

它的核心参数,我列个表,你一眼就能看明白:

参数 典型值 说明
工作电压 5V - 12V 逻辑供电5V,电机供电最高12V
最大输出电流 2A(每通道) 峰值可达3A,但别长时间跑
逻辑输入电平 TTL/CMOS兼容 3.3V单片机也能直接驱动
内置保护 过热关断、过流保护 关键时刻能保命

我在项目中遇到过一件事:有次用L298N驱动一个12V的推货电机,负载稍微大了点,芯片直接烫得能煎鸡蛋。后来一查,是散热片没装好。所以,大电流场合,务必加散热片,或者用PWM降额使用。

1.2 L9110S驱动芯片详解

L9110S,这名字听起来就秀气。它也是H桥结构,但集成了MOSFET,内部逻辑更简单。我常用它驱动售货机里的出货小电机,电流一般不超过800mA,绰绰有余。

它的引脚功能,我习惯这么记:

  • VCC:电机供电,2.5V - 12V
  • GND:共地
  • IA、IB:控制输入,TTL电平
  • OA、OB:电机输出

你想想看,L9110S只有8个引脚,比L298N的15个引脚清爽多了。但代价是,它没有独立的逻辑供电,控制信号直接取自VCC。所以,如果你的单片机是3.3V,而电机是12V,那得加电平转换,否则逻辑可能不识别。

⚠️ 避坑指南: 我曾经用L9110S驱动一个5V电机,结果电机反转时芯片冒烟了。查了半天,原来是IA和IB同时拉高,导致H桥直通短路。记住:IA和IB绝对不能同时为高电平!

1.3 正反转控制原理

正反转,说白了就是改变电机两端电压的极性。H桥的四个开关管,通过不同的导通组合,实现正转、反转、刹车和滑行。

我画个真值表,你一看就懂:

IN1 (IA) IN2 (IB) 电机状态 说明
0 0 滑行(自由停止) 电机两端悬空,惯性转动
0 1 反转 电流从B流向A
1 0 正转 电流从A流向B
1 1 刹车(急停) 电机两端短路,快速停止

嗯,这里要注意:刹车模式是通过将电机两端短接,利用反电动势产生制动扭矩。但电流会瞬间很大,我建议不要频繁使用,否则芯片容易过热。

1.4 刹车与滑行模式详解

这两个模式,新手容易搞混。我举个例子你就明白了:

  • 滑行模式:就像你骑自行车,突然不蹬踏板了,车会靠惯性继续滑行一段。电机两端断开,电流为零,靠机械摩擦自然停止。
  • 刹车模式:就像你捏死刹车,车轮瞬间抱死。电机两端短接,反电动势产生反向电流,形成制动扭矩,电机立刻停转。

在售货机里,出货电机我一般用滑行模式。因为货物掉下来需要一点缓冲,急停反而可能卡住。但推货电机,我建议用刹车模式,确保位置精准。

💡 个人经验: 我曾经调试一台售货机,出货口总是卡货。后来发现是电机停止时用了滑行模式,货物惯性太大,撞到了挡板。改成刹车模式后,问题解决。但代价是电机寿命缩短了,因为每次急停都有电流冲击。所以,这是个取舍问题。

1.5 代码示例:正反转与刹车控制

光说不练假把式。我写个Arduino的示例代码,你直接就能跑:

// L298N 控制示例
// 定义引脚
#define IN1 8
#define IN2 9
#define ENA 10  // PWM调速

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(ENA, OUTPUT);
}

void loop() {
  // 正转,速度50%
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  analogWrite(ENA, 128);
  delay(2000);

  // 刹车
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, HIGH);
  analogWrite(ENA, 255);  // 刹车时PWM全开
  delay(1000);

  // 反转,速度75%
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  analogWrite(ENA, 192);
  delay(2000);

  // 滑行
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  analogWrite(ENA, 0);
  delay(1000);
}

这段代码,我建议你实际跑一下。注意观察电机在刹车和滑行时的停止速度差异。嗯,这里有个小技巧:刹车时PWM不要给太低,否则制动效果不明显。我一般给255,全速制动。

1.6 实战中的选型建议

最后,我总结一下这两款芯片的适用场景:

  • L298N:适合大电流(1A以上)、需要独立逻辑供电的场合。比如售货机的主推货电机,或者需要长时间运行的设备。
  • L9110S:适合小电流(800mA以下)、空间受限的场合。比如售货机的出货小电机,或者电池供电的便携设备。

我个人习惯,如果项目预算允许,我会优先选L9110S。因为它外围电路简单,不容易出问题。但如果你要驱动大负载,L298N还是更靠谱。

🔑 核心要点: 正反转靠H桥切换极性,刹车靠短接电机两端,滑行靠断开电机。选型时,电流是第一要素,其次是散热和逻辑电平兼容性。

好了,第一章就讲到这里。下一章,咱们聊聊PWM调速和死区时间,那才是真正考验功力的时候。记得动手实践,光看是学不会的。