

The BTS7960 is a high-current H-bridge motor driver designed to control DC motors and stepper motors. It is capable of handling high currents (up to 43A) and features built-in protection mechanisms such as overcurrent protection, thermal shutdown, and undervoltage lockout. These features make the BTS7960 a reliable choice for applications requiring robust motor control.








The BTS7960 motor driver is designed to handle high-power motor control with precision and safety. Below are its key technical specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 5.5V to 27V |
| Maximum Output Current | 43A |
| PWM Frequency | Up to 25kHz |
| Logic Voltage | 3.3V or 5V (compatible) |
| Overcurrent Protection | Yes |
| Thermal Shutdown | Yes |
| Undervoltage Lockout | Yes |
| Dimensions | 43mm x 43mm x 15mm |
The BTS7960 module has several pins for motor control and power input. Below is the pin configuration:
| Pin Name | Type | Description |
|---|---|---|
| VCC | Power Input | Logic voltage input (3.3V or 5V). |
| 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 side of the H-bridge. Active HIGH. |
| L_EN | Input | Enable pin for the left side of the H-bridge. Active HIGH. |
| IS | Output | Current sensing output. Provides a voltage proportional to the motor current. |
| VCC (Motor) | Power Input | Motor power supply (5.5V to 27V). |
| OUT1 | Output | Motor terminal 1. |
| OUT2 | Output | Motor terminal 2. |
The BTS7960 motor driver is straightforward to use in motor control applications. Below are the steps and considerations for using the module:
VCC (Motor) pin and the ground to the GND pin.VCC pin.OUT1 and OUT2 pins.RPWM, LPWM, R_EN, and L_EN pins to the microcontroller's GPIO pins.RPWM and LPWM pins to send PWM signals for speed and direction control.R_EN and L_EN pins HIGH.Below is an example code snippet to control a DC motor using the BTS7960 and Arduino UNO:
// Define control pins for the BTS7960 motor driver
#define RPWM 9 // PWM pin for forward rotation
#define LPWM 10 // PWM pin for reverse rotation
#define R_EN 8 // Enable pin for right H-bridge
#define L_EN 7 // Enable pin for left H-bridge
void setup() {
// Set control pins as outputs
pinMode(RPWM, OUTPUT);
pinMode(LPWM, OUTPUT);
pinMode(R_EN, OUTPUT);
pinMode(L_EN, OUTPUT);
// Enable both sides of the H-bridge
digitalWrite(R_EN, HIGH);
digitalWrite(L_EN, HIGH);
}
void loop() {
// Rotate motor forward at 50% speed
analogWrite(RPWM, 128); // 50% duty cycle
analogWrite(LPWM, 0); // No reverse rotation
delay(2000); // Run for 2 seconds
// Rotate motor backward at 75% speed
analogWrite(RPWM, 0); // No forward rotation
analogWrite(LPWM, 192); // 75% duty cycle
delay(2000); // Run for 2 seconds
// Stop the motor
analogWrite(RPWM, 0);
analogWrite(LPWM, 0);
delay(2000); // Wait for 2 seconds
}
Motor Not Running
Overheating
Erratic Motor Behavior
No Response from the Driver
VCC, R_EN, and L_EN pins are correctly connected and powered.Q1: Can the BTS7960 drive stepper motors?
Yes, the BTS7960 can drive stepper motors, but you will need additional control logic to generate the required step and direction signals.
Q2: What is the maximum PWM frequency supported?
The BTS7960 supports PWM frequencies up to 25kHz.
Q3: Can I use the BTS7960 with a 3.3V microcontroller?
Yes, the BTS7960 is compatible with both 3.3V and 5V logic levels.
Q4: How do I measure motor current using the IS pin?
The IS pin provides a voltage proportional to the motor current. Refer to the datasheet for the exact scaling factor.
By following this documentation, you can effectively use the BTS7960 motor driver in your projects.