Description
This driver uses Infineon chips BTS7960 composed of high-power drive full H-bridge driver module with thermal over-current protection. Double BTS7960 H-bridge driver circuit, with a strong drive and braking, effectively isolating the microcontroller and motor driver! High-current 43A.
Description
Operating Voltage 5.5 to 27V (B+)
Path resistance of typ. 16 mOhm at 25°C
Low quiescent current of typ. 7 uA at 25°C
PWM capability of up to 25 kHz combined with active freewheeling
Switched mode current limitation for reduced power dissipation in overcurrent
Current limitation level of 43 A typ.
Status flag diagnosis with current sense capability
Overtemperature shut down with latch behaviour
Overvoltage lock out
Undervoltage shut down
Driver circuit with logic level inputs
Adjustable slew rates for optimized EMI
74AHC244 Schmitt-trigger Octal buffer/ line driver for ESD protection (Inputs accepts voltages higher than VCC)
Getting started with the Double BTS7960B DC 43A Stepper Motor Driver H-Bridge PWM For Arduino
In this post I describe a slightly more complete solution that uses an Arduino controller with connected potentiometer to drive a motor via the Double BTS7960B DC 43A Stepper Motor Driver module from full reverse speed to full forward speed.
Hardware required
Connecting the Hardware
The following Fritzing diagram illustrates the wiring. B+ and B- at the top of the diagram represent the power supply for the motor. A 5k or 10k potentiometer is used to control the speed.
CODE
Here is the associated Arduino sketch:
/*
BTS7960-43A-Driver
made on 22 Nov 2020
by Amir Mohammad Shojaee @ Electropeak
Home
*/
#define RPWM 5
#define LPWM 6
#define REN 8
#define LEN 9
int pot;
int out1;
int out2;
void setup() {
Serial.begin(9600);
pinMode(RPWM,OUTPUT);
pinMode(LPWM,OUTPUT);
pinMode(LEN,OUTPUT);
pinMode(REN,OUTPUT);
digitalWrite(REN,HIGH);
digitalWrite(LEN,HIGH);
}
void loop() {
pot=analogRead(A0);
if(pot>512){
out1=map(pot,512,1023,0,255);
analogWrite(RPWM,out1);
analogWrite(LPWM,0);
}
if(pot<512){
out2=map(pot,512,0,0,255);
analogWrite(LPWM,out2);
analogWrite(RPWM,0);
}
}
In this code, by turning potentiometer completely the motor can be controlled in two direction: Forward and reverse. If the input value is greater than 512, the motor rotates in the forward direction and if it is less than 512, it rotates the opposite direction. We have set EN pins to High and controlled the motor with PWM pins.