

The BTS7960 is a high-current H-bridge motor driver designed for driving DC motors and other inductive loads. Manufactured by ARDUINO with the part ID UNO, this component is ideal for applications requiring precise motor control, such as robotics, automation, and industrial systems. Its robust design includes built-in protection features like overcurrent, overtemperature, and undervoltage safeguards, ensuring reliable operation in demanding environments.








The BTS7960 is a versatile motor driver with the following key specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 5V logic input, 6V–27V motor voltage |
| Maximum Continuous Current | 43A |
| Peak Current | 50A |
| PWM Frequency | Up to 25 kHz |
| Logic Level Voltage | 3.3V or 5V compatible |
| Overcurrent Protection | Yes |
| Overtemperature Protection | Yes |
| Undervoltage Protection | Yes |
The BTS7960 module typically includes the following pins:
| Pin Name | Type | Description |
|---|---|---|
| VCC | Power Input | Connect to 5V logic power supply. |
| GND | Ground | Connect to the ground of the power supply. |
| RPWM | Logic Input | PWM signal for controlling motor rotation in one direction. |
| LPWM | Logic Input | PWM signal for controlling motor rotation in the opposite direction. |
| R_EN | Logic Input | Enable pin for the right half-bridge. Set HIGH to enable. |
| L_EN | Logic Input | Enable pin for the left half-bridge. Set HIGH to enable. |
| IS | Analog Output | Current sensing output. Provides a voltage proportional to the motor current. |
| +V Motor | Power Input | Connect to the positive terminal of the motor power supply (6V–27V). |
| -V Motor | Power Output | Connect to the negative terminal of the motor power supply or motor ground. |
| Motor A | Motor Output | Connect to one terminal of the DC motor. |
| Motor B | Motor Output | Connect to the other terminal of the DC motor. |
To use the BTS7960 with an Arduino UNO, follow these steps:
VCC pin of the BTS7960 to the 5V pin on the Arduino.GND pin of the BTS7960 to the GND pin on the Arduino.RPWM and LPWM pins to two PWM-capable pins on the Arduino (e.g., pins 9 and 10).R_EN and L_EN pins to two digital pins on the Arduino (e.g., pins 7 and 8).Motor A and Motor B outputs of the BTS7960.+V Motor and -V Motor pins.Below is an example Arduino sketch to control a DC motor using the BTS7960:
// Define pins for BTS7960 connections
#define RPWM 9 // PWM pin for forward rotation
#define LPWM 10 // PWM pin for reverse rotation
#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 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
// Stop the motor
analogWrite(RPWM, 0);
analogWrite(LPWM, 0);
delay(1000); // Pause for 1 second
// 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(1000); // Pause for 1 second
}
Motor does not rotate:
R_EN and L_EN pins are set HIGH.RPWM and LPWM pins.Motor rotates in the wrong direction:
Motor A and Motor B).RPWM and LPWM pins.Overheating of the BTS7960 module:
Arduino resets when the motor starts:
Q: Can the BTS7960 drive stepper motors?
A: No, the BTS7960 is designed for DC motors and other inductive loads. For stepper motors, use a dedicated stepper motor driver.
Q: What is the maximum PWM frequency supported?
A: The BTS7960 supports PWM frequencies up to 25 kHz.
Q: Can I use the BTS7960 with a 3.3V microcontroller?
A: Yes, the logic inputs are compatible with both 3.3V and 5V systems.
Q: How do I measure motor current using the IS pin?
A: The IS pin provides an analog voltage proportional to the motor current. Use an ADC pin on the Arduino to read this value and calculate the current.
By following this documentation, you can effectively integrate the BTS7960 into your motor control projects.