给两轮小车、履带车、机械臂的关节做电机驱动,L298N是很多入门玩家上手的第一块电机驱动模块。它基于L298P/L298N双H桥芯片,可以同时驱动两个直流电机,也能驱动一个两相四线步进电机,最高支持到几十伏输入电压。块头不小、发热也大,但胜在皮实、接线直观、资料海量。这篇把从接线到控制的实操讲清楚。

认识板子,电源区和逻辑区分开
L298N板子上一般有一排排针和几个接线端子,大体分两块:左侧是电源区,IN1到IN4是四个控制输入端(两个电机各用两个),ENA、ENB是两个使能端(走PWM调速用);右侧是输出区,OUT1到OUT4接电机两根线。板上还常见一个跳线帽控的5V使能,以及12V供电输入端子。
供电上要分清“电机电源”和“逻辑电源”。电机电源接到你电池的电压(比如两个18650串联的7.4V),逻辑电源一般是模块自己从电机电源稳压出来的5V,也可以单独从Arduino的5V提供。关键是它们要共地,否则PWM信号没参考会乱。
正反转和调速,IN和EN看着办
控制逻辑很直白:一台电机对应两个IN和使能EN。想要A电机正转,就令INA1高电平、INA2低电平,同时ENA给PWM占空比定速度;想反转就把INA1/INA2反过来。不使能(EN拉低)时电机停。两个电机各自独立,配合不同的占空比就能实现差速转向。
用Arduino控制:digitalWrite写IN的高低定方向,analogWrite给EN写0到255的PWM定速度,正转反转调速几步就能跑起来。做小车,左轮给某一方向、右轮给另一方向,就实现了原地转圈,做差速转弯也很自然。

三个高频坑,提前绕开
第一是发热和压降。L298N是线性驱动,压降比较大(一般约1.5V到2V),而且驱动的电流一大芯片就非常热,甚至烫手。所以它更适合中小功率的电机。真要吃大电流或提高效率,可以换成TB6612或DRV8825这类更高效的小驱动。
第二是5V使能跳线的坑。板上那个5V跳线如果插着,意思是从电机电源里给板上的5V逻辑供电;如果电机电源高于12V,这个5V稳压可能不稳定甚至烧板里的稳压管。稳妥做法是:电机电源不超过12V时用跳线,否则拆掉跳线单独给逻辑供电。
第三是共地和电流问题。电机电源和逻辑电源务必共地;同时别指望Arduino的5V同时给逻辑和大电流电机供电,电机电源要单独接电池。把5V跳线、共地、PWM三件事捋顺,L298N就是一个能稳稳驱动双电机的新手友好模块。


现在都换TB6612了更省电,但L298N资料多好上手
差速转向用两路PWM就搞定了,学会了
压降确实大,做大车还是上大电流驱动靠谱
L298N真的是新手第一块驱动,皮实,就是发热
5V跳线的坑我踩过,电机电源上12V容易烧板里稳压管