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

How to Use BTS7960 Motor Driver: Examples, Pinouts, and Specs

Image of BTS7960 Motor Driver
Cirkit Designer LogoDesign with BTS7960 Motor Driver in Cirkit Designer

Introduction

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.

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

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

Common Applications

  • Robotics and automation systems
  • Electric vehicles and motorized carts
  • Conveyor belts and industrial machinery
  • Remote-controlled cars and boats
  • CNC machines and 3D printers

Technical Specifications

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

Pin Configuration and Descriptions

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.

Usage Instructions

The BTS7960 motor driver is straightforward to use in motor control applications. Below are the steps and considerations for using the module:

Connecting the BTS7960

  1. Power Supply: Connect the motor power supply (5.5V to 27V) to the VCC (Motor) pin and the ground to the GND pin.
  2. Logic Voltage: Connect the logic voltage (3.3V or 5V) to the VCC pin.
  3. Motor Connections: Connect the motor terminals to the OUT1 and OUT2 pins.
  4. Control Pins: Connect the RPWM, LPWM, R_EN, and L_EN pins to the microcontroller's GPIO pins.

Controlling the Motor

  • Use the RPWM and LPWM pins to send PWM signals for speed and direction control.
  • Enable the H-bridge by setting R_EN and L_EN pins HIGH.
  • Adjust the duty cycle of the PWM signals to control motor speed.

Example: Using BTS7960 with Arduino UNO

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
}

Best Practices

  • Ensure the motor power supply voltage matches the motor's rated voltage.
  • Use a heatsink or cooling fan if operating at high currents for extended periods.
  • Avoid sudden changes in direction at high speeds to prevent damage to the motor or driver.
  • Use appropriate fuses or circuit breakers for additional protection.

Troubleshooting and FAQs

Common Issues and Solutions

  1. Motor Not Running

    • Cause: Incorrect wiring or insufficient power supply.
    • Solution: Double-check all connections and ensure the power supply meets the voltage and current requirements.
  2. Overheating

    • Cause: Prolonged operation at high currents without proper cooling.
    • Solution: Add a heatsink or cooling fan to the BTS7960 module.
  3. Erratic Motor Behavior

    • Cause: Noise or interference in PWM signals.
    • Solution: Use shielded cables for signal lines and ensure a stable power supply.
  4. No Response from the Driver

    • Cause: Logic voltage not supplied or enable pins not set HIGH.
    • Solution: Verify that the VCC, R_EN, and L_EN pins are correctly connected and powered.

FAQs

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.