

The PY32_L9110_I2C_DRIVER is a dual-channel motor driver module manufactured by MakerEdu.vn. It is designed to control DC motors using the I2C communication protocol, making it an excellent choice for robotics and automation projects. This module simplifies motor control by reducing the number of GPIO pins required, allowing for efficient integration with microcontrollers like Arduino, Raspberry Pi, and other development boards.








The following table outlines the key technical details of the PY32_L9110_I2C_DRIVER:
| Parameter | Value |
|---|---|
| Manufacturer | MakerEdu.vn |
| Part ID | Motor Driver |
| Communication Protocol | I2C |
| Operating Voltage | 3.3V to 5V |
| Motor Voltage Range | 4.5V to 12V |
| Maximum Output Current | 800mA per channel |
| Number of Channels | 2 (dual-channel) |
| I2C Address Range | Configurable via jumpers (default: 0x10) |
| Dimensions | 40mm x 30mm x 10mm |
The PY32_L9110_I2C_DRIVER has the following pin layout:
| Pin Name | Description |
|---|---|
| VCC | Power supply input (3.3V to 5V) |
| GND | Ground |
| SCL | I2C clock line |
| SDA | I2C data line |
| A1 | Motor A positive terminal |
| A2 | Motor A negative terminal |
| B1 | Motor B positive terminal |
| B2 | Motor B negative terminal |
Below is an example of how to connect the PY32_L9110_I2C_DRIVER to an Arduino UNO:
The following code demonstrates how to control two DC motors using the PY32_L9110_I2C_DRIVER:
#include <Wire.h> // Include the Wire library for I2C communication
#define MOTOR_DRIVER_ADDR 0x10 // Default I2C address of the motor driver
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Set motor driver to default state
setMotorSpeed(0, 0); // Stop both motors
}
void loop() {
// Example: Rotate Motor A forward and Motor B backward
setMotorSpeed(100, -100); // Motor A: 100% forward, Motor B: 100% backward
delay(2000); // Run for 2 seconds
// Stop both motors
setMotorSpeed(0, 0);
delay(1000); // Pause for 1 second
}
// Function to set motor speeds
void setMotorSpeed(int motorA, int motorB) {
Wire.beginTransmission(MOTOR_DRIVER_ADDR); // Start communication
Wire.write(motorA); // Send speed for Motor A (-255 to 255)
Wire.write(motorB); // Send speed for Motor B (-255 to 255)
Wire.endTransmission(); // End communication
}
Motors Not Running
I2C Communication Failure
Overheating
Motor Spins in Wrong Direction
Q: Can I use this driver with a 3.3V microcontroller?
A: Yes, the PY32_L9110_I2C_DRIVER supports both 3.3V and 5V logic levels.
Q: How do I change the I2C address?
A: Adjust the onboard jumpers to set a new I2C address. Refer to the datasheet for the jumper configuration.
Q: What is the maximum motor current supported?
A: The driver supports up to 800mA per channel. Exceeding this limit may damage the module.
Q: Can I control stepper motors with this driver?
A: No, the PY32_L9110_I2C_DRIVER is designed for DC motors only. Use a dedicated stepper motor driver for stepper motors.
This concludes the documentation for the PY32_L9110_I2C_DRIVER. For further assistance, refer to the manufacturer's datasheet or contact MakerEdu.vn.