Mass failing of Motor drivers HW-039 // BTS7960B, or I'm wrong?

Hello dear users, I've been passively reading hundred of posts, finding answers dating from 2013 or maybe older to today but this time I really cant find a clear answer, if something about the post is wrong let me know and I'll fix it.

I'll summarize my situation with why, what and how.
Why of the post
I want to know if I'm who is wrong, or actually all the devices I've been sent are bad.
What I'm doing
I'm testing drivers because I need a replacement, I'm building a machine that throws balls for dogs to play, it uses two motors and I'm using a pair of motor driver marked as HW-039 but mostly refferred to by "BTS7960", actually, all the drivers I've had, had their chips named "BTS7960B".
How I'm doing it
Burning set up:
I initially had a power supply of 12V directly to my pair of drivers BTS7960B and also feeding my logic circuit with a LM7805 in the loop to power the 5V components but it was overheating, I replaced it with a step down buck converter which allowed for more current, and thats when I found I had a bigger misstake, I was feeding my logic circuit with 5V, but powering the Arduino trough the Vin pin, therefore it had a voltage drop to around 4.2V because of it regulator in the pin, while other connected devices were at 5V, I burned my bluetooth HC05, and one of the BTS7960B drivers.
It melted a hole in the bts chip, and for another try I dont remember the exactly the context, it melted a hole in the microcontroller, magic smoke!
Current set up:
Anyways, i finally fixed my stuff and now I'm powering from the step down to my Arduino directly to the 5V pin and everything is working properly, BUT now I only have one driver left, and I cant manage to get a working motor driver. So far I ordered from three different amazon vendors, one was 3 devices for 20 euros, next 1 device for 12 euros, next 1 device for 14 euros, None of them have worked and now I think I'm the problem. (I paid the extra bucks because I'm already late on deliverying my project and they were fast shipping)
I've tried to draw my wiring with tinkercad but it doesnt have modules like the motor driver or like my stepdown buck converter, but I did this with diagramsnet

I still have a driver that works correctly, it survived my misstake and it works exactly as all the many guides indicate, like this example:
image

I have my EN_R and EN_L as HIGH, and one PWM with desired value and the other with 0. (I also tried setting the pin of 0 to LOW with digitalwrite as someone suggested in an old post).
This works with my old driver, but nothing at all with the new pieces I've received.

const int R_EN_2 = 8;   //normal
const int L_EN_2 = 7;   //normal
const int R_PWM_2 = 9;  //PWM
const int L_PWM_2 = 6;  //PWM
void setup() {
  Serial.begin(9600);
  pinMode(R_EN_2, OUTPUT);
  pinMode(L_EN_2, OUTPUT);
  pinMode(R_PWM_2, OUTPUT);
  pinMode(L_PWM_2, OUTPUT);

  digitalWrite(R_EN_2, HIGH);
  digitalWrite(L_EN_2, HIGH);
}
void loop() {
  analogWrite(L_PWM_2, 255);
  analogWrite(R_PWM_2, 0);
  delay(100);
}

I've tried 5 controllers so far and none works at all, I've tested with brand new motors, brand new arduino, and a dedicated circuit to test them (only Arduino and motor driver connected, clean code, etc).

So I've been returning them very sure they were a hardware problem but this is the third vendor and it still doesnt work, Is it me? or anyone else have had problems with these drivers?

Thank you so much for your help and previous posts!

//************** Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΎΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄Π° *************//
void aForward(){digitalWrite(in1, LOW);
                delayMicroseconds(4); // Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ сквозняки Π½Π° всякий случай
                digitalWrite(in2, HIGH);}

void bForward(){digitalWrite(in4, LOW);
                delayMicroseconds(4); // Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ сквозняки Π½Π° всякий случай
                digitalWrite(in3, HIGH);}

void aBackward(){digitalWrite(in2, LOW);
                 delayMicroseconds(4); // Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ сквозняки Π½Π° всякий случай
                 digitalWrite(in1, HIGH);}

void bBackward(){digitalWrite(in3, LOW);
                 delayMicroseconds(4); // Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅ΠΌ сквозняки Π½Π° всякий случай
                 digitalWrite(in4, HIGH);}

void aStop(){ digitalWrite(in1, LOW);
              digitalWrite(in2, LOW);}

void bStop(){ digitalWrite(in3, LOW);
              digitalWrite(in4, LOW);}

1 Like

Hello @bruno0001...
Don't fill or write "i am wrong"
Because it's burn your excitement in any project.
And your writing is too good and diagrams alsoπŸ‘
.
.
.
Do check following repository for simple code for your driver

Repository

1 Like

Hi @bruno0001 , I know that it's been a while since you posted this, but I had the same problem today. In fact, I shorted one of my HW-039 motor driver, probably due to user error. But, I think you should check out this tutorial.

My motor beeped after following the tutorial, but did not spin, which I think could be that my power supply didn't have enough current.

Good luck!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.