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

How to Use BTS7960 (IBT-2) Motor Driver: Examples, Pinouts, and Specs

Image of BTS7960 (IBT-2) Motor Driver
Cirkit Designer LogoDesign with BTS7960 (IBT-2) Motor Driver in Cirkit Designer

Introduction

The BTS7960 (commonly referred to as the IBT-2) is a high-current H-bridge motor driver designed for controlling DC motors. It is capable of handling high currents (up to 43A) and supports Pulse Width Modulation (PWM) signals for precise motor speed and direction control. The module features built-in protection mechanisms, including overcurrent and thermal overload protection, making it a reliable choice for demanding motor control applications.

Explore Projects Built with BTS7960 (IBT-2) 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 (IBT-2) 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 (IBT-2) 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
Wi-Fi Controlled Dual Motor System with ESP32 and BTS7960 Drivers
Image of SUBUMOTO_BATTLEBOTS: A project utilizing BTS7960 (IBT-2) 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
Arduino-Controlled Robotic Motors with Joystick Interface
Image of forklift: A project utilizing BTS7960 (IBT-2) 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

Explore Projects Built with BTS7960 (IBT-2) 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 (IBT-2) 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 (IBT-2) 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 SUBUMOTO_BATTLEBOTS: A project utilizing BTS7960 (IBT-2) 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
Image of forklift: A project utilizing BTS7960 (IBT-2) 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

Common Applications and Use Cases

  • Robotics and automation systems
  • Electric vehicles and motorized carts
  • Conveyor belts and industrial machinery
  • Remote-controlled cars, boats, and drones
  • DIY projects requiring high-current motor control

Technical Specifications

The BTS7960 motor driver module is designed to handle high-power DC motors efficiently. 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 Input Voltage 3.3V or 5V
Overcurrent Protection Yes
Thermal Shutdown Yes
Dimensions 43mm x 45mm x 28mm

Pin Configuration and Descriptions

The BTS7960 module has a total of 8 pins for interfacing with a microcontroller and motor. Below is the pinout:

Pin Name Type Description
VCC Power Input 5V logic power supply for the module
GND Ground Common ground for logic and motor power
RPWM Input PWM signal for controlling motor rotation in one direction
LPWM Input PWM signal for controlling motor rotation in the opposite direction
R_EN Input Enable pin for the right half-bridge (active HIGH)
L_EN Input Enable pin for the left half-bridge (active HIGH)
MOTOR+ Output Positive terminal of the motor
MOTOR- Output Negative terminal of the motor

Usage Instructions

How to Use the BTS7960 in a Circuit

  1. Power Connections:

    • Connect the motor power supply (6V–27V) to the MOTOR+ and MOTOR- terminals.
    • Provide a 5V logic power supply to the VCC pin and connect the GND pin to the ground of your microcontroller.
  2. Control Connections:

    • Connect the RPWM and LPWM pins to PWM-capable pins on your microcontroller.
    • Use the R_EN and L_EN pins to enable or disable the respective half-bridges.
  3. Motor Control:

    • To rotate the motor in one direction, send a PWM signal to RPWM while keeping LPWM LOW.
    • To rotate the motor in the opposite direction, send a PWM signal to LPWM while keeping RPWM LOW.
    • Adjust the duty cycle of the PWM signal to control the motor speed.

Important Considerations and Best Practices

  • Ensure the motor power supply voltage is within the specified range (6V–27V).
  • Use a heat sink or cooling fan if operating at high currents for extended periods.
  • Avoid shorting the motor terminals, as this may damage the module.
  • Always connect the ground of the motor driver to the ground of the microcontroller.

Example Code for Arduino UNO

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

// Define pin connections for the BTS7960 motor driver
const int RPWM = 9;  // PWM pin for forward rotation
const int LPWM = 10; // PWM pin for reverse rotation
const int R_EN = 7;  // Enable pin for right half-bridge
const int L_EN = 8;  // Enable pin for left half-bridge

void setup() {
  // Set pin modes
  pinMode(RPWM, OUTPUT);
  pinMode(LPWM, OUTPUT);
  pinMode(R_EN, OUTPUT);
  pinMode(L_EN, OUTPUT);

  // Enable both half-bridges
  digitalWrite(R_EN, HIGH);
  digitalWrite(L_EN, HIGH);
}

void loop() {
  // Rotate motor forward at 50% speed
  analogWrite(RPWM, 128); // 50% duty cycle (128 out of 255)
  analogWrite(LPWM, 0);   // LPWM set to LOW
  delay(2000);            // Run for 2 seconds

  // Stop the motor
  analogWrite(RPWM, 0);
  analogWrite(LPWM, 0);
  delay(1000);            // Pause for 1 second

  // Rotate motor backward at 75% speed
  analogWrite(RPWM, 0);   // RPWM set to LOW
  analogWrite(LPWM, 192); // 75% duty cycle (192 out of 255)
  delay(2000);            // Run for 2 seconds

  // Stop the motor
  analogWrite(RPWM, 0);
  analogWrite(LPWM, 0);
  delay(1000);            // Pause for 1 second
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motor Does Not Rotate:

    • Ensure the motor power supply is connected and within the specified voltage range.
    • Verify that the R_EN and L_EN pins are set HIGH to enable the half-bridges.
    • Check the PWM signal connections and ensure the duty cycle is not set to 0.
  2. Overheating:

    • Use a heat sink or cooling fan to dissipate heat during high-current operation.
    • Reduce the motor load if possible.
  3. Erratic Motor Behavior:

    • Ensure a common ground connection between the motor driver and the microcontroller.
    • Check for loose or faulty wiring.
  4. Module Shuts Down Unexpectedly:

    • This may be due to overcurrent or thermal protection. Reduce the motor load or improve cooling.

FAQs

Q: Can the BTS7960 control two motors simultaneously?
A: No, the BTS7960 is a single H-bridge driver and can control only one motor at a time.

Q: What is the maximum PWM frequency supported?
A: The module supports PWM frequencies up to 25kHz.

Q: Can I use a 3.3V microcontroller with the BTS7960?
A: Yes, the logic input pins are compatible with both 3.3V and 5V signals.

Q: Is it safe to use the BTS7960 without a heat sink?
A: For low-current applications, it may be safe, but for high-current usage, a heat sink or cooling fan is recommended.