Problem with Pololu High-Power Motor Driver 18v25

Hi,
i’m trying to use a 18v25 motor driver with my arduino uno and a 18v motor. I connected the pwm pin to pin 6 and the dir pin to pin to pin 8 on arduino. Controlling the motor speed with pwm worked as expected, but changing the direction did not work. I figured the problem was the missing gnd connection, so i connected the drivers gnd pin to the arduinos gnd pin. From that point the driver stopped working. Both FF1 and FF2 where low. When i tried another 18v25 driver in the exact same setup, it burnt out within seconds after connecting the battery. What could i be doing wrong?

Thanks
Bart

Hi, Bart.

I am sorry you are having trouble with your high-power motor drivers. Could you tell me some more about your setup? How are you supplying power? Have you soldered in the included capacitors? Could you detail your connections? Also, could you post the code you are using and a clear picture of your setup showing all connections?

-Claire

Hi Claire,

here is a picture of my setup:



The arduino is powered by USB, the motor runs on a 18V battery.
Unfortunately i deleted the original code, so i wrote this from memory (i can’t recall if dirState was high or low initially):

/* Test Motortreiber*/

const int pwnPin =  6;     
const int dirPin =  8;     
const unsigned int BAUD_RATE = 9600;
int dirState = HIGH; 
int speed = 0;  

void setup() {
  pinMode(pwnPin, OUTPUT);      
  pinMode(dirPin, OUTPUT);  
  digitalWrite(dirPin, dirState);
  Serial.begin(BAUD_RATE);
}

void loop()
{

  if (Serial.available() > 0) {
    int command = Serial.read();
    if (command == '1') {
      for(int speed = 0 ; speed <= 255; speed +=5) { 
        analogWrite(pwnPin, speed);         
        delay(30);     
      } 
      for(int speed = 255 ; speed >= 0; speed -=5) { 
        analogWrite(pwnPin, speed);         
        delay(30);     
      } 
    } 
    else if (command == '2') {
      dirState = LOW;
      digitalWrite(dirPin, dirState);      
    }
  }
}

When i first tested the code, the gnd pin was not connected. command = 1 worked as expected: the motor
went from 0 to full speed and back to a stop. command = 2 did nothing. After i connected gnd as shown on the picture motor driver stopped working completly. It didn’t get hot and looks fine.
The second motor driver i tried in the exact same setup just burnt out immediately.


Thanks!
Ben

Why is your second board missing two MOSFETs? Why are the header pins on your second driver soldered in a different way? Did you change the wiring to account for this new orientation? The code you wrote looks like it might work but is unnecessarily complex for debugging. Can you try writing a sketch that only spins the motor in one direction? Then, change it so the motor spins in the opposite direction?

Could you describe the motor you are driving? What is the stall current of it? How long are your motor and power leads? Did you ever have a different wiring configuration beside the two you mentioned (with GND and without)?

I noticed some other issues:

  • The GND of the high-power motor driver should always be connected to the ground of your microcontroller.
  • All of your motor and battery leads are the same color, which makes me uneasy. Also, terminal blocks are meant to be soldered into the larger holes near the edge of the board.

-Claire

Hi Claire,

the second board is missing two MOSFET’s because it became so hot they just fell of. I changed the direction of the header pins to be able to see the labeling on the pins, and i changed the wiring accordingly.
I will try a simpler sketch when i get another motor driver, maybe tomorrow.
The motor is a 18V geared motor from an electric screwdriver with a stall current of about 19 ampere. The motor and power leads are 30 cm long. I used no other wiring then the two i mentioned.

Thanks for your help
Ben

I do not see anything obviously wrong with your setup that would have caused the kind of catastrophic failure you had with your second driver. We test all our boards so it is likely that it worked when it shipped, but maybe it was damaged by a voltage spike or static discharge. It sounds like you might already have a new driver on the way, but if you email us and refer to this forum post then I might be able to get you a discount on another replacement.

In the meantime, it seems to me that your first board might not be broken. Could you try testing it with the setup you showed and the simplified version of the Arduino code?

-Claire

Hi Claire,

i recieved the new motor driver today and it worked without problems. I than tested the first board in the same setup and it worked, too.
I guess i killed the second board by wiring the battery wrong, although i was sure i had checked everything.

Anyway, thanks for your help!
Ben

I am glad your drivers are working. Good luck with your project!

-Claire