Motor doesn't turn when connected to H bridge

Hi

I'm hoping someone on here can help me. I'm having real trouble getting an IBT-2 (BTS7960) H bridge driver working. I'm trying to control a 12VDC motor with a 43A IBT-2 (BTS7960) H bridge using PWM from an Arduino Uno and 10K potentiometer input. However, the motor doesn't respond - regardless of the code I use. All I get is a quiet ringing sound from the motor as I turn the pot, but it doesn't move.

The basic setup of my circuit is as follows:

IBT-2 H bridge is connected to a 12v motor and powered via a 12v SLA battery with a 15A fuse inline and SPST switch.
Arduino Uno is connected to 10K potentiometer and is using the USB power supply.

For the H bridge and Arduino connections I'm using the same setup as described below in usage one:

I'm using the exact code found here. Connections are the same as usage one above. For ease of reference, I've added this code below:

/*
IBT-2 Motor Control Board driven by Arduino.
 
Speed and direction controlled by a potentiometer attached to analog input 0.
One side pin of the potentiometer (either one) to ground; the other side pin to +5V
 
Connection to the IBT-2 board:
IBT-2 pin 1 (RPWM) to Arduino pin 5(PWM)
IBT-2 pin 2 (LPWM) to Arduino pin 6(PWM)
IBT-2 pins 3 (R_EN), 4 (L_EN), 7 (VCC) to Arduino 5V pin
IBT-2 pin 8 (GND) to Arduino GND
IBT-2 pins 5 (R_IS) and 6 (L_IS) not connected
*/
 
int SENSOR_PIN = 0; // center pin of the potentiometer
 
int RPWM_Output = 5; // Arduino PWM output pin 5; connect to IBT-2 pin 1 (RPWM)
int LPWM_Output = 6; // Arduino PWM output pin 6; connect to IBT-2 pin 2 (LPWM)
 
void setup()
{
  pinMode(RPWM_Output, OUTPUT);
  pinMode(LPWM_Output, OUTPUT);
}
 
void loop()
{
  int sensorValue = analogRead(SENSOR_PIN);
 
  // sensor value is in the range 0 to 1023
  // the lower half of it we use for reverse rotation; the upper half for forward rotation
  if (sensorValue < 512)
  {
    // reverse rotation
    int reversePWM = -(sensorValue - 511) / 2;
    analogWrite(LPWM_Output, 0);
    analogWrite(RPWM_Output, reversePWM);
  }
  else
  {
    // forward rotation
    int forwardPWM = (sensorValue - 512) / 2;
    analogWrite(LPWM_Output, forwardPWM);
    analogWrite(RPWM_Output, 0);
  }
}

I don't think the code is the problem. Using my DMM, I get 13v from the fully charged 12v battery where it inputs the IBT-2 module. Yet when I measure the voltage at the motor, the highest reading I get turning the pot is roughly 1v. According to my DMM, the L_EN, R_EN and VCC pins are all receiving 5v, GND is 0v. I've tried writing a PWM value in the code (instead of using the pot) but still nothing from the motor. Changing the LPWM/RPWM from PWM to digital outputs and measuring them shows that they are working correctly.

Can anyone help me with what might be going wrong here?

Thanks

Michael

Hi,

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

Showing your power supplies and component labels.

A picture of your project so we can see your component layout will also help.

Thanks.. Tom.. :slight_smile:

Hi Tom,

Attached is a layout of my circuit, I'll take some photos and post those too.

Many thanks

Michael

Hi,
OPs diagram

The info link,
http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/

Shows the neg of the motor supply battery connected to the gnd of the arduino.
grnds.jpg

Tom... :slight_smile:

grnds.jpg

Gutted! It hasn't made any difference Tom. Still just get a faint ringing sound from the motor when I turn the pot :slightly_frowning_face:

I connected it to the negative side of the battery and then to the spare GND pin on the Arduino Uno.
Does this most likely mean the H bridge is faulty?

Thanks for your input

Michael

Looks like the board has a bunch more connections possible. Are any of them supposed to be connected to enable motor movement?

Paul

Hi,

From your original post you show you have tried driving and measuring the UNO output to the driver.
Which should have got a response.

What is your motor, specs please?

Also when you motor faults and makes a noise, what voltage do you see on pin 5 and 6, they go HIGH if the driver detects a over current supply fault to the motor.

Tom... :slight_smile:

Thanks Paul, I think the 2 unused pins on the board are for current sensing.

Tom, I'm afraid I don't have the exact specs of the 12VDC motor, I've been unable to get hold of a datasheet.
I have calculated the stall current to be 44A . I have 2 of these motors, both new. They both behave the same when connected to the driver. No movement from the motor shaft at all - just a faint ringing as I turn the pot.

I tried what you suggested. The PWM pins 5 & 6 just read whatever voltage I turn the pot to. If the pot is pointing at 12 o'clock I get 0V. If I turn it left from this position PIN 5 (RPWM) voltage reading increases to a max of 4.88V. Motor doesn't move at all during this. If I turn it right from 12 o'clock voltage steadily increases to a max reading of 4.84V at PIN 6 (LPWM), still no motor movement.

Could the H bridge be damaged - even though outwardly it looks ok?

Thanks

Michael

Hi,
If the pins 5 and 6 are following your PWM, then the driver board is telling you it is current limiting on each pulse, as the driver detects the motor current and shuts off.
If you disconnect the motor and do the test again, I think you will find pins 5 and 6 stay at 0V.

Try a 12V load like lamp or LED and current limit resistor, something that is less than 1A load.

How did you work out stall current?
Do the motors have a nameplate?
Can you post a picture of the motor please.

Thanks.. Tom.. :slight_smile:

Thanks for your help Tom.

I re-did the test in my last post, this time with the motor disconnected. The Arduino PWM pins 5 & 6 showed roughly the same voltage as last time with it connected, Pin 5 LPWM 4.95V and Pin 6 RPWM 4.87V when turned to max (in either direction). Not sure if that tells us anything?

I'll need to buy some LED's to test that. If you could tell me what spec LED and resistor I'll happily order them to try.

The stall current was worked out with the help of a member from another forum. I've linked to the relevant page in that thread here

Below is a photo of the motor and attached to this post a photo of the nameplate:

The motor is a new replacement throwing motor from a tennis ball machine (which uses counter rotating wheels to fire the ball - a motor on each wheel). I haven't been able to find the datasheet for them.

What I did find was the spec of the throwing motors from another tennis ball machine - my guess is they are similar to mine since these machines all work the same way:

Voltage: 12VDC
Power: 0.13 HP
Amps: 12
Torque: 32 oz-in
RPM: 4150

Link to the post which includes this info in more detail here:

Thanks

Michael

Hi,
An automotive lamp will do, 5W to 20W or so, doesn't need to be a headlight.

An LED would be to light a load for the controller, considering we are troubleshooting about driving a decent load.
OPs Motor Plate

Hill House Products do have a web site, might be worth giving them a ring.
Those motors for tennis and baseball launchers can be very current hungry, especially on start up.

Have you measured the battery voltage while connecting the motor directly to the battery.

Tom.. :slight_smile:

Thanks Tom,

One thing I forgot to add in my last post, when the motor was disconnected in the last test I also measured the voltage at the motor terminals on the IBT-2 board. It read a max of 4.51V turning the pot fully in either direction. With the motor attached the maximum reading was just over 1V.

I'll get hold of a 12V automotive bulb to try that with then.

I've contacted Hill House Products, but not had any success getting info on the motor. Perhaps because it's from a commercial machine they won't give that information out?

I haven't measured the battery voltage like that. Just before I do so, is it safe to just connect the motor directly to the 12V SLA battery?

Thanks

Michael

So I've just tried a 12V 21W bulb in place of the motor, attaching it to the motor terminals on the IBT-2 board. I used the same Hessmer code as posted above to test this - let me know if that's wrong and I need to change it. The outcome was that the bulb didn't light either. If I turned the pot fully right and left (giving the highest voltages - 0V is at 12 o'clock) the bulb didn't light. I've checked the bulb does actually work, but let me know if the sketch is wrong for testing this.

Thanks

Michael