Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use PY32_L9110_I2C_DRIVER: Examples, Pinouts, and Specs

Image of PY32_L9110_I2C_DRIVER
Cirkit Designer LogoDesign with PY32_L9110_I2C_DRIVER in Cirkit Designer

Introduction

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.

Explore Projects Built with PY32_L9110_I2C_DRIVER

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-Based Infrared Thermometer with I2C LCD Display
Image of infrared thermometer: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
This circuit features an ESP32 microcontroller powered by a 18650 Li-Ion battery, with a TP4056 module for charging the battery via a USB plug. The ESP32 reads temperature data from an MLX90614 infrared temperature sensor and displays it on an I2C LCD 16x2 screen. The ESP32, MLX90614 sensor, and LCD screen are connected via I2C communication lines (SCL, SDA), and the circuit is designed to measure and display ambient and object temperatures.
Cirkit Designer LogoOpen Project in Cirkit Designer
Cellular-Connected ESP32-CAM with Real-Time Clock and Isolated Control
Image of LRCM PHASE 2 PRO: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
This circuit integrates a LilyGo-SIM7000G module with an RTC DS3231 for timekeeping, interfaced via I2C (SCL and SDA lines). An 8-Channel OPTO-COUPLER is used to isolate and interface external signals with the LilyGo-SIM7000G's GPIOs. Power is managed by a Buck converter, which steps down voltage from a DC Power Source to supply the ESP32-CAM and LilyGo-SIM7000G modules, as well as the OPTO-COUPLER.
Cirkit Designer LogoOpen Project in Cirkit Designer
A-Star 32U4 Mini and I2C LCD Screen Battery-Powered Display
Image of lcd disolay: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
This circuit features an A-Star 32U4 Mini microcontroller connected to a 16x2 I2C LCD screen. The microcontroller provides power and ground to the LCD, and communicates with it via the I2C protocol using the A4 (SDA) and A5 (SCL) pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Controlled Multi-Axis Actuator System with Orientation Sensing and Light Detection
Image of Auto_Level_Table: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
This circuit features an ESP32 S3 N32R8V microcontroller interfaced with multiple IBT-2 H-Bridge Motor Drivers to control several Linear Actuators, and it receives input from KY-018 LDR Photo Resistors and Pushbuttons. The ESP32 is powered by a 5V supply from an Adafruit MPM3610 5V Buck Converter, while the Linear Actuators and Motor Drivers are powered by a 12V 7Ah battery. Additionally, the ESP32 communicates with an Adafruit BNO085 9-DOF Orientation IMU Fusion Breakout for orientation sensing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with PY32_L9110_I2C_DRIVER

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of infrared thermometer: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
ESP32-Based Infrared Thermometer with I2C LCD Display
This circuit features an ESP32 microcontroller powered by a 18650 Li-Ion battery, with a TP4056 module for charging the battery via a USB plug. The ESP32 reads temperature data from an MLX90614 infrared temperature sensor and displays it on an I2C LCD 16x2 screen. The ESP32, MLX90614 sensor, and LCD screen are connected via I2C communication lines (SCL, SDA), and the circuit is designed to measure and display ambient and object temperatures.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of LRCM PHASE 2 PRO: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
Cellular-Connected ESP32-CAM with Real-Time Clock and Isolated Control
This circuit integrates a LilyGo-SIM7000G module with an RTC DS3231 for timekeeping, interfaced via I2C (SCL and SDA lines). An 8-Channel OPTO-COUPLER is used to isolate and interface external signals with the LilyGo-SIM7000G's GPIOs. Power is managed by a Buck converter, which steps down voltage from a DC Power Source to supply the ESP32-CAM and LilyGo-SIM7000G modules, as well as the OPTO-COUPLER.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of lcd disolay: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
A-Star 32U4 Mini and I2C LCD Screen Battery-Powered Display
This circuit features an A-Star 32U4 Mini microcontroller connected to a 16x2 I2C LCD screen. The microcontroller provides power and ground to the LCD, and communicates with it via the I2C protocol using the A4 (SDA) and A5 (SCL) pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Auto_Level_Table: A project utilizing PY32_L9110_I2C_DRIVER in a practical application
ESP32-Controlled Multi-Axis Actuator System with Orientation Sensing and Light Detection
This circuit features an ESP32 S3 N32R8V microcontroller interfaced with multiple IBT-2 H-Bridge Motor Drivers to control several Linear Actuators, and it receives input from KY-018 LDR Photo Resistors and Pushbuttons. The ESP32 is powered by a 5V supply from an Adafruit MPM3610 5V Buck Converter, while the Linear Actuators and Motor Drivers are powered by a 12V 7Ah battery. Additionally, the ESP32 communicates with an Adafruit BNO085 9-DOF Orientation IMU Fusion Breakout for orientation sensing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics: Driving wheels or robotic arms
  • Automation: Conveyor belts, automated doors, or other motorized systems
  • DIY Projects: Remote-controlled cars, drones, or hobbyist creations
  • Educational Tools: Teaching motor control and I2C communication

Technical Specifications

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

Pin Configuration

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

Usage Instructions

Connecting the Component

  1. Power Supply: Connect the VCC pin to a 3.3V or 5V power source and the GND pin to ground.
  2. I2C Communication: Connect the SCL and SDA pins to the corresponding I2C pins on your microcontroller.
  3. Motor Connections: Attach the DC motors to the A1, A2, B1, and B2 terminals. Ensure correct polarity for desired motor direction.
  4. I2C Address Configuration: If needed, adjust the I2C address using the onboard jumpers.

Example Circuit with Arduino UNO

Below is an example of how to connect the PY32_L9110_I2C_DRIVER to an Arduino UNO:

  • VCC → 5V on Arduino
  • GND → GND on Arduino
  • SCL → A5 on Arduino
  • SDA → A4 on Arduino
  • Connect motors to A1, A2, B1, and B2 terminals.

Example Arduino Code

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
}

Important Considerations

  • Power Supply: Ensure the motor voltage matches the motor's specifications to avoid damage.
  • I2C Address Conflicts: If using multiple I2C devices, ensure each has a unique address.
  • Heat Dissipation: For prolonged use, consider adding a heatsink to the driver IC to prevent overheating.

Troubleshooting and FAQs

Common Issues

  1. Motors Not Running

    • Cause: Incorrect wiring or insufficient power supply.
    • Solution: Double-check all connections and ensure the power supply meets the voltage and current requirements.
  2. I2C Communication Failure

    • Cause: Incorrect I2C address or loose connections.
    • Solution: Verify the I2C address and ensure secure connections to the SCL and SDA pins.
  3. Overheating

    • Cause: Prolonged high current usage.
    • Solution: Reduce motor load or add a heatsink to the driver IC.
  4. Motor Spins in Wrong Direction

    • Cause: Incorrect polarity of motor connections.
    • Solution: Swap the motor's positive and negative terminals.

FAQs

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.