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

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
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? :slight_smile:
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 (356 KB)

Is it this device: 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.

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

Lefty

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

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 (633 KB)

  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.

1 Like

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!

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?

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.

Okay! Thanks

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

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.

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.

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.

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?

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.

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

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

BTN7960 v.s. BTS7960

BTS7960 5.5~27.5V 43A discontinued

BTN7960 4.5~28.0v 47A in production

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

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