Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

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

Image of BTS7960 (IBT-2) Motor DriverDesign 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 operates with PWM (Pulse Width Modulation) 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!

Common Applications and Use Cases

Technical Specifications

The BTS7960 motor driver is designed to handle high-power motors with ease. Below are its key technical details:

Parameter Value
Operating Voltage 5V logic, 6V–27V motor voltage
Maximum Continuous Current 43A
Peak Current 50A
PWM Frequency Up to 25kHz
Logic Level Input Voltage 3.3V or 5V (compatible with Arduino)
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 input for logic circuitry.
GND Power Ground Ground connection for logic circuitry.
RPWM Logic Input PWM signal for controlling motor speed in one direction.
LPWM Logic Input PWM signal for controlling motor speed in the opposite direction.
R_EN Enable Input Enable pin for the right half-bridge. Set HIGH to enable.
L_EN Enable Input Enable pin for the left half-bridge. Set HIGH to enable.
MOTOR+ Motor Output Connect to the positive terminal of the motor.
MOTOR- Motor Output Connect to the negative terminal of the motor.

Usage Instructions

How to Use the BTS7960 in a Circuit

  1. Power Connections:

    • Connect the motor's power supply (6V–27V) to the module's power input terminals.
    • Connect the motor's terminals to the MOTOR+ and MOTOR- outputs.
    • Provide 5V to the VCC pin for the module's logic circuitry.
  2. Microcontroller Interface:

    • 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. Control Logic:

    • To move the motor in one direction, send a PWM signal to RPWM and set LPWM to LOW.
    • To reverse the motor, send a PWM signal to LPWM and set RPWM to LOW.
    • Adjust the duty cycle of the PWM signal to control motor speed.

Important Considerations and Best Practices

Example Code for Arduino UNO

Below is an example of how to control the BTS7960 motor driver using an Arduino UNO:

// Define pins for BTS7960 motor driver
#define RPWM 9  // PWM pin for forward direction
#define LPWM 10 // PWM pin for reverse direction
#define R_EN 7  // Enable pin for right half-bridge
#define 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() {
  // Move 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

  // Move motor in reverse 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 Not Running:

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

    • Use a heat sink or active cooling if the module is operating at high currents.
    • Ensure the motor is not drawing more current than the module's maximum rating.
  3. Erratic Motor Behavior:

    • Check for loose or faulty connections.
    • Ensure that only one of RPWM or LPWM is receiving a PWM signal at any given time.
  4. Module Shuts Down Unexpectedly:

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

FAQs

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

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

Q: Can I control two motors with one BTS7960 module?
A: No, the BTS7960 is designed to control a single motor. For dual-motor control, use two modules.