做小车、机器人底盘,避不开一个问题:怎么用Arduino控制直流电机正反转和速度。L9110S是很多新手入门的双路电机驱动,比L298N小且便宜,用几个逻辑脚就能同时带两个电机。这篇把引脚、接线、正反转和PWM调速一次讲清楚。
L9110S该接哪几个脚
模块一般标A-1A、A-1B(控制A路电机)和B-1A、B-1B(控制B路电机),加上VCC接5V、GND接地,以及OA、OB两组输出接电机。Arduino这边,A路两个控制脚接两个数字脚(比如D5、D6),B路接着接D9、D10。让某一脚为高、另一脚为低,电机就朝一个方向转;反过来就反转;两脚同高或同低电机就停。用analogWrite给出PWM,就能调速度——但要注意PWM要给在能让方向成立的那个脚上。

示意图把控制脚、电源和电机输出的对应关系都画了出来:A-1A/A-1B接D5/D6、B-1A/B-1B接D9/D10,VCC接5V,输出OA/OB接两只电机的两根线。接线前先确认电机工作电压,如果电机要求超过5V,需要给驱动模块单独供相应电压并共地。
正反转、调速的代码写法
控制逻辑不复杂:把A路两个脚设成OUTPUT,想正转就把A-1A写成HIGH、A-1B写成LOW;反转就反过来;要停就都设LOW。速度控制用analogWrite给其中一路写0到255,比如都设好方向后,把作为“使能”的那一脚用analogWrite调速,另一脚保持确定方向。两张路配合,就能做出前、后、左、右转的小车。

这就是把L9110S接到小车轮子电机上、跑起来的样子。模块小、直插方便,我常拿它搭两驱实验底盘,配合无线模块遥控或者循迹线,入门电机控制这一套够用了。
两个使用避坑点
一是电源要分开:电机堵转瞬间电流很大,会让5V被拉垮导致Arduino复位,电机电源最好独立一路,并共地。二是别把它当大电流驱动用,L9110S适合小电流的普通直流电机和减速电机,如果驱动的是大电流电机,老老实实换更强驱动的驱动板,不然模块容易烫甚至损坏。







这模块适合小电流电机,带大电机还是老老实实换驱动吧
PWM调速给在确定方向的那一路,不然方向会被速度带跑
A1A和A1B要一高一低才转,两脚同高就停,别搞反
电机单独供电并共地,堵转电流能把5V拉垮导致板子复位