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

How to Use BTS7960 Motor Driver: Examples, Pinouts, and Specs

Image of BTS7960 Motor Driver
Cirkit Designer LogoDesign with BTS7960 Motor Driver in Cirkit Designer

Introduction

The BTS7960 is a high-current H-bridge motor driver designed for controlling DC motors with precision and efficiency. It supports Pulse Width Modulation (PWM) signals for speed and direction control, making it ideal for applications requiring high power and reliability. The module features built-in protection mechanisms, including overcurrent and thermal overload protection, ensuring safe operation under demanding conditions.

Explore Projects Built with BTS7960 Motor 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!
DC Motor Control System with BTS7960 Motor Driver and Arcade Buttons
Image of Hanif: A project utilizing BTS7960 Motor Driver in a practical application
This circuit controls a DC motor using a BTS7960 motor driver, powered by a 12V power supply and regulated by a DC-DC step-down converter. The motor's operation is controlled via two arcade buttons and a rocker switch, allowing for user input to manage the motor's direction and power.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560 Controlled Multi-Motor System with BTS7960 Drivers
Image of alter: A project utilizing BTS7960 Motor Driver in a practical application
This circuit consists of an Arduino Mega 2560 microcontroller connected to eight BTS7960 motor drivers. The Arduino controls the motor drivers through its PWM pins, enabling the control of multiple motors for applications such as robotics or automation systems. The motor drivers are powered by the 5V supply from the Arduino and share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino-Controlled Robotic Motors with Joystick Interface
Image of forklift: A project utilizing BTS7960 Motor Driver in a practical application
This is a joystick-controlled motor driving system. An Arduino UNO reads inputs from an Adafruit Arcade Joystick and outputs control signals to BTS7960 motor drivers, which in turn power several 12V geared motors. The system is designed for directional control of motors, suitable for applications such as robotic vehicles or motorized platforms.
Cirkit Designer LogoOpen Project in Cirkit Designer
Wi-Fi Controlled Dual Motor System with ESP32 and BTS7960 Drivers
Image of SUBUMOTO_BATTLEBOTS: A project utilizing BTS7960 Motor Driver in a practical application
This circuit is designed to control two 775 motors using two BTS7960 motor drivers, which are managed by an ESP32 microcontroller. The power is supplied by a 18650 3s2p battery pack, regulated through a buck converter to provide appropriate voltage levels for the components.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with BTS7960 Motor 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 Hanif: A project utilizing BTS7960 Motor Driver in a practical application
DC Motor Control System with BTS7960 Motor Driver and Arcade Buttons
This circuit controls a DC motor using a BTS7960 motor driver, powered by a 12V power supply and regulated by a DC-DC step-down converter. The motor's operation is controlled via two arcade buttons and a rocker switch, allowing for user input to manage the motor's direction and power.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of alter: A project utilizing BTS7960 Motor Driver in a practical application
Arduino Mega 2560 Controlled Multi-Motor System with BTS7960 Drivers
This circuit consists of an Arduino Mega 2560 microcontroller connected to eight BTS7960 motor drivers. The Arduino controls the motor drivers through its PWM pins, enabling the control of multiple motors for applications such as robotics or automation systems. The motor drivers are powered by the 5V supply from the Arduino and share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of forklift: A project utilizing BTS7960 Motor Driver in a practical application
Arduino-Controlled Robotic Motors with Joystick Interface
This is a joystick-controlled motor driving system. An Arduino UNO reads inputs from an Adafruit Arcade Joystick and outputs control signals to BTS7960 motor drivers, which in turn power several 12V geared motors. The system is designed for directional control of motors, suitable for applications such as robotic vehicles or motorized platforms.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SUBUMOTO_BATTLEBOTS: A project utilizing BTS7960 Motor Driver in a practical application
Wi-Fi Controlled Dual Motor System with ESP32 and BTS7960 Drivers
This circuit is designed to control two 775 motors using two BTS7960 motor drivers, which are managed by an ESP32 microcontroller. The power is supplied by a 18650 3s2p battery pack, regulated through a buck converter to provide appropriate voltage levels for the components.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotic systems
  • Electric vehicles
  • Conveyor belts
  • Industrial automation
  • High-power motor control in DIY projects

Technical Specifications

The BTS7960 motor driver is designed to handle high-current loads and offers robust performance. Below are its key technical details:

Parameter Value
Operating Voltage 5V logic, 6V–27V motor supply
Maximum Continuous Current 43A
Peak Current 50A
PWM Frequency Up to 25kHz
Logic Level Voltage 3.3V or 5V compatible
Overcurrent Protection Yes
Thermal Shutdown Yes
Dimensions 43mm x 45mm x 28mm

Pin Configuration and Descriptions

The BTS7960 module has multiple pins for motor control and power connections. Below is the pinout:

Control Pins

Pin Name Description
R_EN Enables the right side of the H-bridge
L_EN Enables the left side of the H-bridge
R_PWM PWM input for controlling the right motor side
L_PWM PWM input for controlling the left motor side
VCC 5V logic power supply
GND Ground connection for logic

Power and Motor Pins

Pin Name Description
B+ Positive motor power supply (6V–27V)
B- Ground for motor power supply
M+ Positive terminal of the motor
M- Negative terminal of the motor

Usage Instructions

The BTS7960 motor driver is straightforward to use in a circuit. Below are the steps and best practices for integrating it into your project:

Connecting the BTS7960

  1. Power Supply: Connect the motor power supply to the B+ and B- terminals. Ensure the voltage is within the 6V–27V range.
  2. Motor Connection: Attach the motor terminals to the M+ and M- pins.
  3. Logic Power: Provide 5V to the VCC pin and connect the GND pin to the ground of your microcontroller.
  4. Control Pins: Connect the R_EN, L_EN, R_PWM, and L_PWM pins to the corresponding GPIO pins of your microcontroller.

Example: Using BTS7960 with Arduino UNO

Below is an example of how to control a DC motor using the BTS7960 and an Arduino UNO:

// Define control pins for the BTS7960 motor driver
#define R_EN 7    // Right enable pin
#define L_EN 8    // Left enable pin
#define R_PWM 9   // Right PWM pin
#define L_PWM 10  // Left PWM pin

void setup() {
  // Set control pins as outputs
  pinMode(R_EN, OUTPUT);
  pinMode(L_EN, OUTPUT);
  pinMode(R_PWM, OUTPUT);
  pinMode(L_PWM, OUTPUT);

  // Enable both sides of the H-bridge
  digitalWrite(R_EN, HIGH);
  digitalWrite(L_EN, HIGH);
}

void loop() {
  // Rotate motor forward
  analogWrite(R_PWM, 200); // Set speed (0-255)
  analogWrite(L_PWM, 0);   // Stop left side
  delay(2000);             // Run for 2 seconds

  // Rotate motor backward
  analogWrite(R_PWM, 0);   // Stop right side
  analogWrite(L_PWM, 200); // Set speed (0-255)
  delay(2000);             // Run for 2 seconds

  // Stop motor
  analogWrite(R_PWM, 0);
  analogWrite(L_PWM, 0);
  delay(1000);             // Pause for 1 second
}

Best Practices

  • Use a power supply capable of providing sufficient current for your motor.
  • Ensure proper heat dissipation for the BTS7960 module, especially under high loads.
  • Use appropriate fuses or circuit breakers to protect your system from overcurrent conditions.
  • Avoid sudden changes in motor direction to reduce stress on the driver and motor.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motor Not Spinning

    • Cause: Incorrect wiring or insufficient power supply.
    • Solution: Double-check all connections and ensure the power supply meets the motor's requirements.
  2. Overheating

    • Cause: Prolonged high-current operation without proper cooling.
    • Solution: Add a heatsink or active cooling (e.g., a fan) to the module.
  3. PWM Signal Not Working

    • Cause: Incorrect PWM frequency or logic level mismatch.
    • Solution: Verify that the PWM frequency is within the module's supported range (up to 25kHz) and that the logic voltage matches the microcontroller's output.
  4. Motor Spins in One Direction Only

    • Cause: Faulty or missing connection to one of the control pins.
    • Solution: Check the R_PWM and L_PWM connections and ensure both are properly configured in your code.

FAQs

  • Can I use the BTS7960 with a 3.3V microcontroller? Yes, the BTS7960 is compatible with both 3.3V and 5V logic levels.

  • What is the maximum motor voltage the BTS7960 can handle? The module supports motor voltages between 6V and 27V.

  • Do I need external diodes for motor protection? No, the BTS7960 has built-in flyback diodes for motor protection.

  • Can I control two motors with one BTS7960 module? No, the BTS7960 is designed to control a single DC motor. For dual-motor control, you will need two modules.

By following this documentation, you can effectively integrate the BTS7960 motor driver into your projects and achieve reliable motor control.