Problems with BTS7960 43A DC motor driver

Hi

I'm currently building an arduino leonardo diy sim rig (with EMC software) with a steering wheel, H-pattern shifter and pedals.
But since severals months I have problems with my BTS7960 DC motor driver and even after many research i can't find the solution.

First problem, the driver does not want to turn the motor forward and backward, just one way.
Second problem, I'm using 12V power supply and a 775 12V dc motor, but at full PWM (255), I'm just outputing 3.5V.

This is the code that I use for testing it with a UNO :

int LPWM = 10;
int enL = 3;
int RPWM = 9;
int enR = 4;

void setup() {
  pinMode(LPWM, OUTPUT);
  pinMode(RPWM, OUTPUT);
  pinMode(enL, OUTPUT);
  pinMode(enR, OUTPUT);

  digitalWrite(LPWM, LOW);
  digitalWrite(RPWM, LOW);
  digitalWrite(enL, HIGH);
  digitalWrite(enR, HIGH);  
}

void loop() {
  analogWrite(RPWM,0); 
  analogWrite(LPWM, 255);
  delay(1000);
  
  analogWrite(LPWM, 0);
  analogWrite(RPWM, 255); 
  delay(1000);
}

Results : The motor is spinnig very slow in one direction during 1 sec, then nothing for a sec and so on.

This is the wiring :

(Aligator clips are from 12V power supply)
(The motor is off screen but not important)
(Yellow and green LEDs are respectively L_en and R_en)
(Red and blue LEDs are respectively R_PWM and LPWM)
(NANO is not important)

I'm starting to thing that it's a hardware issue..
Can someone help me please ?
Best Regards

What do you mean the motor isn't important? That's what trying to draw the current that's probably causing the problem. If it's the sort of 775 motor I know it could take 30A or even more. Do you know how much current does it take? What is the current rating of the power supply?

The alligator clips are useless to carry any real current as is the breadboard but I can't see if you're trying to run the motor power or ground through that.

Steve

Second problem first! How do you know the voltage is 3.5 volts? Are you looking at the signal with an oscilloscope? Bet you are looking at the PWM signal with a DVM. Need to use the proper tools.

Paul

Check the information on your H-bridge carefully. Some of the higher current ones that are MOSFET based require a particular type of PWM to keep the MOSFET fully open.

You are correct it is a hardware problem. I think with the above information you need to rebuild your prototype from scratch and be sure you are able to handle the required currents plus a nice safety margin. The BTS7960 is a very robust module, but be sure you meet the following:
Input Voltage: 6 ~ 27Vdc.
 Driver: Dual BTS7960 H Bridge Configuration.
 Peak current: 43-Amp.
 PWM capability of up to 25 kHz.
 Control Input Level: 3.3~5V.
 Control Mode: PWM or level
 Working Duty Cycle: 0 ~100%.
 Over-voltage Lock Out.
 Under-voltage Shut Down.
It sounds like you are not supplying at least 6 volts, this prevents it from fully enhancing the internal MOSFETs. PWM from 0 to 100% is valid, there are no restrictions, I use them in that range all the time and they make great duel LED drivers. Let us know after you correct the bread board as to how well it works. This response is to help you get started in solving your problem, not solve it for you.
Good Luck & Have Fun!
Gil

Thanks for your replies

I said that motor isn't important beacause we don't need to see it, we just need to know that it's wired the H-bridge.
My 775 motor is a weak one, it draw around 2A at max load, so around 25W. I'm testing it with a 150W power supply, but in the final project, I will use a 12V 3A 36W one.

I know that I'm outputing 3.5V at full PWM because I measure it with a voltmeter, I know that is not a good idea, but I don't have better solution. But whatever the motor is turning very slowly.

I'm controlling the H-bridge with the arduino UNO 5V supply, when you say at least 6V, its for controlling it or the motor power supply ? Do I have to control the H-bridge with at least 6V ?

Tristan

No, 5V for the control, pins 7 and 8, is correct with 12V to the motor power connector. I have no idea why gilshultz concluded that you're not supplying over 6V for the MOTOR power.

Are you measuring your 3.5V across the M+/M- pins or where? Can you check the input voltage? With analogWrite(255) you should be getting 5V on the Arduino output pin (LPWM or RPWM). Are you? And can you check that you have 5V on enL and enR. It's fairly normal to just tie them both to the 5V pin but your version should be o.k.

I still think those useless alligator clips are at least part of the problem. Please check the supply voltage at driver B+ and B- terminals when the motor is running.

Steve

Yes I'm measuring 3.5V across the M+/M-
All the control inputs are correct : 5V in RPWM and LPWM with analogWrite(255), I tied R_EN and L_EN to 5V for simplicity.

This is some more measurements and observations :

  • When the motor is not spinning, the voltage across B+/B- is 11.98V, but when the motor is turning, the voltage drops to 11.65V
  • When the motor is spinning, the UNO built-in SMD LEDs is correct, but when the motor is not spinning, they dim a bit. like if the UNO is driving something but I don't know what.
  • My alligator clips are 1 meter long, I controlled the tension during operation, at the end of the power supply is 12.02V and at the clips its 11.98V (with motor spinning and not spinning).

Furthermore, I unscrewed the radiator from the H-bridge to see if there is no damage that explain its not fuctionning and I can see a white dot :

Do you thing it's a critical damage ?

I appreciate the time you give me, thanks

Looks like you let out the magic smoke.

"First problem, the driver does not want to turn the motor forward and backward, just one way.
Second problem, I'm using 12V power supply and a 775 12V dc motor, but at full PWM (255), I'm just outputing 3.5V."

For the first, there may be a wiring or bad connection problem, or the switch (MOSFET?) may be blown. The second may be wiring resistance, or the switch (MOSFET?) is not being fully turned on. Does the H-bridge start to get hot under this condition?

Yes I think the left BTS7960 is dead, the h-bridge start to get hot very quickly (no load attach to it) and it draw around 0.15A of current just by supplying it with 12V (no input signals from UNO) and i think that it shouldn't.

If a MOSFET is not fully on, then it is just a big resistor that possibly can heat up until it fails. The MOSFET gate needs to be at a higher voltage than the voltage being switched for the MOSFET to be fully on. You might study how your H-bridge accomplishes this condition and see if your control method is in accord. Google "MOSFET boot strap" for some background info.