第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,那得加电平转换,否则逻辑可能不识别。
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还是更靠谱。
好了,第一章就讲到这里。下一章,咱们聊聊PWM调速和死区时间,那才是真正考验功力的时候。记得动手实践,光看是学不会的。