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 manufactured by MakerEdu.vn (Part ID: Motor Driver). It is designed to interface with microcontrollers via the I2C protocol, enabling precise control of DC motors and stepper motors. This driver supports adjustable speed and direction control, making it ideal for robotics, automation, and other motorized applications.

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 and Use Cases

  • Robotics projects requiring motorized movement
  • Automated conveyor systems
  • Remote-controlled vehicles
  • Stepper motor-based positioning systems
  • Educational projects for learning motor control with microcontrollers

Technical Specifications

The following table outlines the key technical details of the PY32_L9110_I2C_DRIVER:

Parameter Value
Operating Voltage 3.3V to 5V
Motor Voltage Range 4.5V to 12V
Maximum Output Current 800mA per channel
Communication Protocol I2C
I2C Address Range Configurable via jumpers (default: 0x10)
Channels 2 (dual-channel for two motors)
Motor Types Supported DC motors, Stepper motors
PWM Frequency Up to 20 kHz
Dimensions 40mm x 30mm x 10mm

Pin Configuration and Descriptions

The PY32_L9110_I2C_DRIVER has the following pin layout:

Pin Name Type Description
VCC Power Input Connect to 3.3V or 5V power supply.
GND Ground Connect to the ground of the power supply.
SCL I2C Clock Line Connect to the SCL pin of the microcontroller.
SDA I2C Data Line Connect to the SDA pin of the microcontroller.
A0, A1 Address Select Configure the I2C address (default: 0x10).
OUT1 Motor Output Connect to one terminal of Motor 1.
OUT2 Motor Output Connect to the other terminal of Motor 1.
OUT3 Motor Output Connect to one terminal of Motor 2.
OUT4 Motor Output Connect to the other terminal of Motor 2.

Usage Instructions

How to Use the Component in a Circuit

  1. Power Supply: Connect the VCC pin to a 3.3V or 5V power source and the GND pin to ground.
  2. I2C Connection: Connect the SCL and SDA pins to the corresponding I2C pins on your microcontroller.
  3. Motor Connections: Attach the motor terminals to the OUT1, OUT2 (for Motor 1) and OUT3, OUT4 (for Motor 2) pins.
  4. I2C Address Configuration: Use the A0 and A1 pins to set the I2C address if multiple drivers are used in the same circuit.
  5. Programming: Use the microcontroller to send I2C commands to control motor speed and direction.

Important Considerations and Best Practices

  • Ensure the motor voltage does not exceed the specified range (4.5V to 12V).
  • Use appropriate decoupling capacitors near the power supply pins to reduce noise.
  • Avoid exceeding the maximum output current of 800mA per channel to prevent damage.
  • If using with an Arduino UNO, ensure pull-up resistors (4.7kΩ to 10kΩ) are present on the I2C lines.

Example Code for Arduino UNO

Below is an example Arduino sketch 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 1 to move forward at 50% speed
  setMotor(1, 128, true); // Motor 1, speed 128 (50%), direction forward

  // Set Motor 2 to move backward at 75% speed
  setMotor(2, 192, false); // Motor 2, speed 192 (75%), direction backward
}

void loop() {
  // Add your main code here
}

// Function to control motor speed and direction
void setMotor(uint8_t motor, uint8_t speed, bool direction) {
  Wire.beginTransmission(MOTOR_DRIVER_ADDR); // Start communication
  Wire.write(motor); // Specify motor number (1 or 2)
  Wire.write(speed); // Set speed (0-255)
  Wire.write(direction ? 1 : 0); // Set direction (1 = forward, 0 = backward)
  Wire.endTransmission(); // End communication
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motors Not Running:

    • Ensure the power supply voltage is within the specified range.
    • Verify the motor connections to the OUT pins.
    • Check the I2C address configuration and ensure it matches the code.
  2. Erratic Motor Behavior:

    • Add decoupling capacitors near the motor driver to reduce electrical noise.
    • Ensure the I2C lines have proper pull-up resistors.
  3. Overheating:

    • Avoid exceeding the maximum current rating of 800mA per channel.
    • Use heat sinks or active cooling if operating at high currents for extended periods.
  4. I2C Communication Errors:

    • Check the SCL and SDA connections for loose wires.
    • Ensure the I2C address is correctly set in the code.

FAQs

Q: Can I use this driver with a Raspberry Pi?
A: Yes, the driver is compatible with any microcontroller or SBC that supports I2C communication, including Raspberry Pi.

Q: How do I control a stepper motor with this driver?
A: You can control a stepper motor by energizing the coils in the correct sequence. Refer to the stepper motor's datasheet for the sequence and use the setMotor function to control each coil.

Q: What happens if I exceed the current limit?
A: Exceeding the current limit may damage the driver. Use motors within the specified current range or add current-limiting resistors.

Q: Can I daisy-chain multiple drivers?
A: Yes, you can daisy-chain multiple drivers by configuring unique I2C addresses using the A0 and A1 pins.