The L9110S is a dual-channel DC motor driver module designed to control up to four DC motors. It supports bidirectional control, allowing motors to operate in both forward and reverse directions. This module is widely used in robotics, automation, and DIY electronics projects due to its compact size, ease of use, and compatibility with microcontrollers like Arduino and ESP32.
The L9110S module has 8 pins, as described in the table below:
Pin Name | Description |
---|---|
A-IA | Input signal for motor A direction control (connect to microcontroller pin). |
A-IB | Input signal for motor A direction control (connect to microcontroller pin). |
B-IA | Input signal for motor B direction control (connect to microcontroller pin). |
B-IB | Input signal for motor B direction control (connect to microcontroller pin). |
VCC | Power supply for the motors (2.5V to 12V). |
GND | Ground connection. |
Motor A+ | Positive terminal for Motor A. |
Motor A- | Negative terminal for Motor A. |
Motor B+ | Positive terminal for Motor B. |
Motor B- | Negative terminal for Motor B. |
Below is an example code to control two DC motors using the L9110S module with an Arduino UNO:
// Define control pins for Motor A
const int motorA_IA = 3; // Connect to A-IA pin on L9110S
const int motorA_IB = 4; // Connect to A-IB pin on L9110S
// Define control pins for Motor B
const int motorB_IA = 5; // Connect to B-IA pin on L9110S
const int motorB_IB = 6; // Connect to B-IB pin on L9110S
void setup() {
// Set motor control pins as outputs
pinMode(motorA_IA, OUTPUT);
pinMode(motorA_IB, OUTPUT);
pinMode(motorB_IA, OUTPUT);
pinMode(motorB_IB, OUTPUT);
}
void loop() {
// Motor A: Forward
digitalWrite(motorA_IA, HIGH);
digitalWrite(motorA_IB, LOW);
// Motor B: Reverse
digitalWrite(motorB_IA, LOW);
digitalWrite(motorB_IB, HIGH);
delay(2000); // Run motors for 2 seconds
// Stop both motors
digitalWrite(motorA_IA, LOW);
digitalWrite(motorA_IB, LOW);
digitalWrite(motorB_IA, LOW);
digitalWrite(motorB_IB, LOW);
delay(2000); // Wait for 2 seconds
}
Motors Not Running:
Overheating:
Erratic Motor Behavior:
No Response from Motors:
Q: Can I control stepper motors with the L9110S?
A: The L9110S is primarily designed for DC motors. While it can control stepper motors, a dedicated stepper motor driver is recommended for better performance.
Q: Is the L9110S compatible with 3.3V logic?
A: Yes, the L9110S is compatible with both 3.3V and 5V logic levels, making it suitable for use with Arduino, ESP32, and other microcontrollers.
Q: Can I use the L9110S to control more than four motors?
A: You can control up to four motors by connecting two motors in parallel per channel. However, ensure the total current does not exceed 800mA per channel.