Go Down

Topic: [SOLVED] PROBLEM: DC MOTOR DRIVER 24V 43A + Arduino UNO (Read 30934 times) previous topic - next topic

nila1

Feb 12, 2013, 01:46 pm Last Edit: Feb 12, 2013, 05:34 pm by nila1 Reason: 1
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? :)
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!

dc42

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.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

retrolefty

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

Lefty

johnwasser

The ENABLE line might be Active LOW.  Try setting it LOW instead of HIGH.
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

nila1

#4
Feb 12, 2013, 04:56 pm Last Edit: Feb 12, 2013, 05:02 pm by nila1 Reason: 1
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?

dc42

#5
Feb 12, 2013, 05:09 pm Last Edit: Feb 12, 2013, 05:11 pm by dc42 Reason: 1
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.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

nila1

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!

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?

dc42


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.
Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.


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

MarkT


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.
[ I won't respond to messages, use the forum please ]

zoomkat



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.
Google forum search: Use Google Advanced Search and use Http://forum.arduino.cc/index in the "site or domain:" box.

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 won't respond to messages, use the forum please ]

cr0sh


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?
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Go Up