I was recently loitering on AliExpress again, aimlessly filling my basket with $2 cheap thrills as you do. My last order of pointless things included a cheeky 10-pack of L9110H motor controller ICs which I stumbled across.
They seemed kind of pointless to a guy who maintained a good stock of humble L293D chips. The L9110H only offers one motor output, but it is somewhat ‘cute’ when compared to its crusty ex-celebrity older cousin.
Despite having absolutely no need for a new go-to motor chip, it’s been fun learning about this little guy over the last couple of weeks – so I’ll show you how I used it with my trusty Wemos D1 Mini.

L9110H – The Perfect Beginner IC?
I should give this thing more credit, it’s actually pretty solid for something so cheap and small.
The L9110H has some handy features that similar chips don’t always offer, which will help beginners (even if they’re not aware of them):
- Wide input voltage range – 2.5V-12V
- Built-in clamp diodes
- Forward & reverse capability
- Just 8 pins
I love that you can make something move with just 8 pins and pretty much any battery pack you’ve likely got lying around the house. Let’s do it!
Wiring Up the Wemos and L9110H
The L9110H is a doddle to wire up. You’ve got 2 GND connections, 2 power (5V), 2 GPIO control pins and 2 pins that run to the motor. Easy!
Here’s the chip pin-out, courtesy of the charming engineers over at Elecrow:

Here’s where the pins go on your Wemos:
L9110H | Wemos | Function |
GND (x2) | GND | Ground |
VCC (x2) | 5V | 5V Power |
IA | D5 | Input Pin A |
IB | D0 | Input Pin B |
OA | – | Motor Wire 1 |
OB | – | Motor Wire 2 |
…and for what it’s worth, here’s what it looked like on my breadboard:

It doesn’t matter which way you wire the motor, it’ll just turn one direction or another (you can’t break it), and the IA/IB input pins connect to your Wemos GPIO (D0, D5) to control the motor direction/speed.
Super simple huh?
Simple Arduino IDE Code
The code for the L9110H works just like the popular L293D – using 2 GPIO pins per motor to determine the direction of travel.
I’m using a Wemos D1 Mini here – if you need help setting it up with the Arduino IDE, check out my guide.
Here’s my Arduino sketch which makes the motor move forwards for 5 seconds, takes a 1 second pause, and then backwards for another 5:
//Motor Pins int Motor1 = D0; int Motor2 = D5; void setup() { //configure pins as outputs pinMode (Motor1, OUTPUT); pinMode (Motor2, OUTPUT); } void loop() { // Forwards digitalWrite (Motor1, LOW); digitalWrite (Motor2, HIGH); //5 second wait delay (5000); // Stop digitalWrite (Motor1, LOW); digitalWrite (Motor2, LOW); //1 second wait delay(1000); // Backwards digitalWrite (Motor1,HIGH); digitalWrite (Motor2,LOW); //5 second wait delay (5000); // Stop digitalWrite (Motor1, LOW); digitalWrite (Motor2, LOW); //1 second wait delay(1000); }
Over to you
GO FORTH fellow makers! Create useless 1-wheeled robots and other such pointless moving things with the slightly 1-armed-but-wonderful L9110H!
Rich
Be the first to comment on "Using the L9110H Motor Controller with the Wemos D1 Mini"