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.
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 |
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 |
Power Connections:
MOTOR+
and MOTOR-
terminals.VCC
pin and connect the GND
pin to the ground of your microcontroller.Control Connections:
RPWM
and LPWM
pins to PWM-capable pins on your microcontroller.R_EN
and L_EN
pins to enable or disable the respective half-bridges.Motor Control:
RPWM
while keeping LPWM
LOW.LPWM
while keeping RPWM
LOW.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
}
Motor Does Not Rotate:
R_EN
and L_EN
pins are set HIGH to enable the half-bridges.Overheating:
Erratic Motor Behavior:
Module Shuts Down Unexpectedly:
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.