# \[SOLVED\] PROBLEM: DC MOTOR DRIVER 24V 43A + Arduino UNO

**URL:** <https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980>\
**Category:** Motors, Mechanics, Power and CNC\
**Created:** [February 12, 2013, 12:46pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980 "2013-02-12T12:46:26Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [February 12, 2013, 12:46pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/1 "2013-02-12T12:46:26Z")

</div>

Hi,

I'm an Engineering student, I working on a self-balancing robot based on Arduino.

I am using the power driver Wingxin model IBT-2,  
the site of those who produce them is: [ALFS-TECH.taobao.com](http://ALFS-TECH.taobao.com)  
which is totally in Chinese and also with the translation I did not understand how to do to write an email!

The driver uses two BTS7960 (half H-bridge) that support 24V and 43A  
The problem is that the driver no signs of life! Has anyone used or can help me? 🙂  
I enclose a photo of the driver!

The connections I've made are:

Driver side Arduino side  
-pin1 = LPWM -\> pwm arduino (controlled with analogWrite)  
-pin4 = L\_EN -\> Arduino digital pin driven HIGH  
pin8-= GND -\> Arduino GND

- Power supply + B,-B -\> 12Vdc battery
- 
  - M,-M -\> connected to a small motor for test (10Watt-12V)

I made several attempts but the motor has not moved! (While the classic driver with L298 work perfectly)

If someone can give me any suggestions I thank you in advance!

[Foto a pagina intera.pdf](https://forum.arduino.cc/uploads/short-url/elDY9rBje54bOKX3MWlKIEzlFVM.pdf) (356 KB)

 ![driver.JPG](https://europe1.discourse-cdn.com/arduino/original/3X/1/4/14453a9e2293c86a2a965a74ea17a3aaf0b22115.jpg)

---

<div class="post-metadata">

**Author:** ![dc42](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/dc42/32/214539_2.png) [@dc42](https://forum.arduino.cc/u/dc42)\
**Post date:** [February 12, 2013, 2:06pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/2 "2013-02-12T14:06:43Z")

</div>

Is it this device: [http://www.ebay.com/itm/Double-BTS7960B-43A-Motor-Driver-High-power-module-smart-car-driver-Arduino-/150713543689](http://www.ebay.com/itm/Double-BTS7960B-43A-Motor-Driver-High-power-module-smart-car-driver-Arduino-/150713543689)? If so, have you connected the Vcc pin to +5V? It looks to me that the inputs to that board are buffered by the 74HC244 chip, which will need a 5V supply from somewhere. But before you connect the Vcc pin to +5V, check that it isn't internally connected to the motor power supply.

---

<div class="post-metadata">

**Author:** ![retrolefty](https://avatars.discourse-cdn.com/v4/letter/r/dec6dc/32.png) [@retrolefty](https://forum.arduino.cc/u/retrolefty)\
**Post date:** [February 12, 2013, 2:25pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/3 "2013-02-12T14:25:59Z")

</div>

Wow, that is a very impressive motor driver for the price, I'll have to think about getting one of those.

Lefty

---

<div class="post-metadata">

**Author:** ![johnwasser](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/johnwasser/32/214270_2.png) [@johnwasser](https://forum.arduino.cc/u/johnwasser)\
**Post date:** [February 12, 2013, 2:29pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/4 "2013-02-12T14:29:50Z")

</div>

The ENABLE line might be Active LOW. Try setting it LOW instead of HIGH.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [February 12, 2013, 3:56pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/5 "2013-02-12T15:56:28Z")

</div>

Thank you all for having responded to me!

I also tried to connect the Vcc pin to 5V Arduino pin , and also to setting the enable low! But no result!

This is the Arduino code:

// Arduino code for the H\_BRIDGE

int LPWM = 9; // H-bridge leg 1 -\>LPWM  
int enL = 8; // H-bridge enable pin 1 -\> L\_EN

int RPWM = 6; // H-bridge leg 2 -\>RPWM  
int enR = 7; // H-bridge enable pin 2 -\> R\_EN

void setup()  
{  
Serial.begin (9600);  
pinMode(LPWM, OUTPUT);  
pinMode(RPWM, OUTPUT);  
pinMode(enL, OUTPUT);  
pinMode(enR, OUTPUT);

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

void loop()  
{  
analogWrite(LPWM,200);  
analogWrite(RPWM,LOW);  
}

I enclose a picture of the connections between the driver and arduino

What can I try to do?

[Motor driver test.pdf](https://forum.arduino.cc/uploads/short-url/edBWWjO8UoP43crGz2DyyqiYF6M.pdf) (633 KB)

 ![motor driver test.JPG](https://europe1.discourse-cdn.com/arduino/original/3X/6/8/68c4f2c38d4ca6097d96c50dda0dfb3e1e1e9ce8.jpg)

---

<div class="post-metadata">

**Author:** ![dc42](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/dc42/32/214539_2.png) [@dc42](https://forum.arduino.cc/u/dc42)\
**Post date:** [February 12, 2013, 4:09pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/6 "2013-02-12T16:09:52Z")

</div>

1. I think you need to set both ENL and ENR HIGH.

2. Don't analogWrite LOW to RPWM, digitalWrite LOW to it instead.

3. Don't keep repeating the analogWrite command, just write it once until you want to change it.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [February 12, 2013, 4:18pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/7 "2013-02-12T16:18:53Z")

</div>

Now it works perfectly!!

Thank you very much **dc42**!

correct Arduino code :

// Arduino code for the H\_BRIDGE

int LPWM = 9; // H-bridge leg 1 -\>LPWM  
int enL = 8; // H-bridge enable pin 1 -\> L\_EN

int RPWM = 6; // H-bridge leg 2 -\>RPWM  
int enR = 7; // H-bridge enable pin 2 -\> R\_EN

void setup()  
{  
Serial.begin (9600);  
pinMode(LPWM, OUTPUT);  
pinMode(RPWM, OUTPUT);  
pinMode(enL, OUTPUT);  
pinMode(enR, OUTPUT);

digitalWrite(enL, HIGH);  
digitalWrite(enR, HIGH);  
}

void loop()  
{  
analogWrite(RPWM,100); //pwm value  
digitalWrite(LPWM, LOW);

}

Thank you all!

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [February 12, 2013, 4:22pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/8 "2013-02-12T16:22:09Z")

</div>

In order not to repeat the command analogWrite (), can I put an if statement that updates the pwm provided for reference only when the value changes, right?

---

<div class="post-metadata">

**Author:** ![dc42](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/dc42/32/214539_2.png) [@dc42](https://forum.arduino.cc/u/dc42)\
**Post date:** [February 12, 2013, 4:32pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/9 "2013-02-12T16:32:58Z")

</div>

> nila1:  
> In order not to repeat the command analogWrite (), can I put an if statement that updates the pwm provided for reference only when the value changes, right?

Yes. But I guess doing the analogWrite continuously is OK if it is working now. I suggested you avoid doing that in case it was adding to the problem.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [February 12, 2013, 4:34pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/10 "2013-02-12T16:34:06Z")

</div>

Okay! Thanks

---

<div class="post-metadata">

**Author:** ![kontrattura](https://avatars.discourse-cdn.com/v4/letter/k/71c47a/32.png) [@kontrattura](https://forum.arduino.cc/u/kontrattura)\
**Post date:** [May 17, 2013, 1:39pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/11 "2013-05-17T13:39:10Z")

</div>

hi everybody,  
please can you help me with some problem, ho do you connect the cables at least?

Can you post picture or Schema?

thank's so much

---

<div class="post-metadata">

**Author:** ![MarkT](https://avatars.discourse-cdn.com/v4/letter/m/c89c15/32.png) [@MarkT](https://forum.arduino.cc/u/MarkT)\
**Post date:** [May 17, 2013, 10:26pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/12 "2013-05-17T22:26:46Z")

</div>

> retrolefty:  
> Wow, that is a very impressive motor driver for the price, I'll have to think about getting one of those.
> 
> Lefty

But don't expect to put 43A through it for long - that comes to 30W dissipation and the devices have  
no heatsink or fan! Probably handle 15A nicely though.

---

<div class="post-metadata">

**Author:** ![zoomkat](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zoomkat/32/1190177_2.png) [@zoomkat](https://forum.arduino.cc/u/zoomkat)\
**Post date:** [May 17, 2013, 10:51pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/13 "2013-05-17T22:51:01Z")

</div>

> MarkT:
> 
> > retrolefty:  
> > Wow, that is a very impressive motor driver for the price, I'll have to think about getting one of those.
> > 
> > Lefty
> 
> But don't expect to put 43A through it for long - that comes to 30W dissipation and the devices have  
> no heatsink or fan! Probably handle 15A nicely though.

The h-bridge in the given ebay link has a very large heat sink on the bottom. I've seen others that don't have attached heat sinks.

---

<div class="post-metadata">

**Author:** ![MarkT](https://avatars.discourse-cdn.com/v4/letter/m/c89c15/32.png) [@MarkT](https://forum.arduino.cc/u/MarkT)\
**Post date:** [May 17, 2013, 11:10pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/14 "2013-05-17T23:10:17Z")

</div>

It may have a heatsink on the bottom, but the devices are on the top and FR4 PCB material is not a good conductor of heat.  
I presume there are lots of vias under them but not 30W's worth!

If it were an aluminium PCB that might be difference, but its clearly FR4 from the edge in the photo, and has through-hole  
components to prove it.

---

<div class="post-metadata">

**Author:** ![cr0sh](https://avatars.discourse-cdn.com/v4/letter/c/67e7ee/32.png) [@cr0sh](https://forum.arduino.cc/u/cr0sh)\
**Post date:** [May 18, 2013, 2:11am UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/15 "2013-05-18T02:11:55Z")

</div>

> MarkT:  
> It may have a heatsink on the bottom, but the devices are on the top and FR4 PCB material is not a good conductor of heat.  
> I presume there are lots of vias under them but not 30W's worth!
> 
> If it were an aluminium PCB that might be difference, but its clearly FR4 from the edge in the photo, and has through-hole  
> components to prove it.

I'd want to pull the heatsink off; if it were done right, the heatsink would have "bumps" to mate with the backside of the BTS7960, and the PCB would have hole for the bumps to fit through; that and some heatsink paste should work well. That said, I wonder if the heatsink itself is large enough?

---

<div class="post-metadata">

**Author:** ![zoomkat](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zoomkat/32/1190177_2.png) [@zoomkat](https://forum.arduino.cc/u/zoomkat)\
**Post date:** [May 18, 2013, 3:05am UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/16 "2013-05-18T03:05:14Z")

</div>

In the below pix it looks like the h-bridge chips may be resting on some type of metallic surface on the top of the pcb. $18 might solve the mystery.

 ![](https://europe1.discourse-cdn.com/arduino/original/4X/a/4/b/a4b10a81d5b2302bd5ff6408667f44625cfb931e.jpeg)

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [June 9, 2013, 11:50pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/17 "2013-06-09T23:50:14Z")

</div>

I bought two of these to run cordless drill motors on my robot project. One of them you can clearly see a ton of vias on the heatsink pad for the chips. I've run my motor and grabbed the shaft to apply resistance and the board barely gets warm. I'm not going for high speed, just controlled slow speed with the load of dragging the robot around. Seems to be a good H-bridge for that purpose.

Here's the schematic/info download that the eBay seller had: [IBT-2.rar – DivShare - DivShare - Professional Media and Document Sharing](http://www.divshare.com/download/16556751-20f)

The schematic shows that there is no +5V supply on board, so you have to provide a 5V supply on the Vcc pin. I tied L and R enables together and ran them to one pin on my AVR (using a bare Mega168, AVR C code). Using Timer/Counter 0 channels A and B to generate PWM for left and right. That part works, so now is just figuring out the current sense outputs which appear to be current outputs through 1K resistors.

To note, my boards have BTN7960 chips rather than BTS7960 as shown in the eBay listing and schematic. Not sure what the differences are, the BTN7960 seems to meet the same ratings shown on the product page. The current sense pins seem to be working as according to the datasheet so now I just need to get the ADC working

---

<div class="post-metadata">

**Author:** ![sonnyyu](https://avatars.discourse-cdn.com/v4/letter/s/71e660/32.png) [@sonnyyu](https://forum.arduino.cc/u/sonnyyu)\
**Post date:** [June 10, 2013, 6:44am UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/18 "2013-06-10T06:44:06Z")

</div>

BTN7960 v.s. BTS7960

BTS7960 5.5~27.5V 43A discontinued

BTN7960 4.5~28.0v 47A in production

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [November 26, 2013, 3:28pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/19 "2013-11-26T15:28:12Z")

</div>

Dear all,

I need following information about this driver

1. where i can find detail datasheet for the driver
2. whether it has back emf protection/ over voltage protection  
3)can we ale to change direction of motor
3. is there any circuit available for above kit

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [September 10, 2014, 10:51pm UTC](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980/20 "2014-09-10T22:51:44Z")

</div>

Can this motor controller operate at 12V, or does he need the 24V?

Also, does he only provide PWM, or can supply just HIGH and LOW without having to modulate?

Thanks

[Next page](https://forum.arduino.cc/t/solved-problem-dc-motor-driver-24v-43a-arduino-uno/144980.md?page=2)
