Codey OnlineArduino & ESP32 component library › BTS7960 Motor Driver
BTS7960 Motor Driver
Actuators

BTS7960 Motor Driver

This BTS7960-based driver module is used to control a DC motor with PWM speed control and separate enable inputs. It exposes logic pins for left/right PWM and enable, plus analog current-sense outputs, and power connections for the motor supply and ground.

Width: 52.6 mm

Pinout — BTS7960 Motor Driver

Pin Signal Description
GND ground Logic ground reference for control signals.
VCC power Logic supply input for the BTS7960 driver interface.
LPWM PWM PWM control input for left-direction motor drive.
RPWM PWM PWM control input for right-direction motor drive.
L_EN enable Left half-bridge enable input; drive high to enable.
R_EN enable Right half-bridge enable input; drive high to enable.
M+ power Motor output terminal positive side from the H-bridge.
M- power Motor output terminal negative side from the H-bridge.
L_EN enable Left half-bridge enable input; drive high to enable.
R_EN enable Right half-bridge enable input; drive high to enable.
B- power-high High-current motor supply negative input for the BTS7960 bridge.
B+ power-high High-current motor supply positive input for the BTS7960 bridge.
R_IS analog Right-side current sense output from the driver.
L_IS analog Left-side current sense output from the driver.

Example wiring diagram — BTS7960 Motor Driver

From To Wire
board:5V x1:VCC red
board:GND x1:GND black
board:D5 x1:RPWM green
board:D6 x1:LPWM blue
board:D7 x1:R_EN yellow
board:D8 x1:L_EN purple
x1:M+ x2:M+ cyan

Example Arduino code — BTS7960 Motor Driver

This example was written and compile-checked for the arduino-uno. Codey Online adapts it to any other supported board for you.

// BTS7960 Right Foot Driver canonical beginner example
// This sketch drives a DC motor forward and backward using PWM.

const int RPWM_PIN = 5;
const int LPWM_PIN = 6;
const int REN_PIN  = 7;
const int LEN_PIN  = 8;

void stopMotor() {
  analogWrite(RPWM_PIN, 0);
  analogWrite(LPWM_PIN, 0);
}

void setup() {
  pinMode(RPWM_PIN, OUTPUT);
  pinMode(LPWM_PIN, OUTPUT);
  pinMode(REN_PIN, OUTPUT);
  pinMode(LEN_PIN, OUTPUT);

  digitalWrite(REN_PIN, HIGH);
  digitalWrite(LEN_PIN, HIGH);

  Serial.begin(9600);
  Serial.println("BTS7960 motor driver demo starting...");
  stopMotor();
}

void loop() {
  Serial.println("Forward");
  analogWrite(RPWM_PIN, 180);
  analogWrite(LPWM_PIN, 0);
  delay(2000);

  stopMotor();
  delay(1000);

  Serial.println("Reverse");
  analogWrite(RPWM_PIN, 0);
  analogWrite(LPWM_PIN, 180);
  delay(2000);

  stopMotor();
  delay(1000);
}

Related components

A4988 Stepper Driver

A4988 Stepper Driver

DRV8825 Driver Board

DRV8825 Driver Board

L298N Motor Driver Board

L298N Motor Driver Board

Left DC Motor

Left DC Motor

Build your Arduino or ESP32 project with AI

Describe what you want to build. Codey Online writes the code, draws the wiring diagram, compiles it and flashes your board straight from the browser.

Start for free