Go Down

Topic: A4988 ... fried! (Read 3104 times) previous topic - next topic

cicciosalsiccia

Dear ones
I just did my first attempt with the A4988 and a stepper motor and the result is that the driver has been fried. What did I do wrong? The motor itself is a bipolar stepper with 7Ohm per coil and nominal voltage of 42V. I have an Arduino UNO and my wiring was as follows:

- Arduino connected to PC through USB port
- Arduino's GND and 5V connected to GND and VDD respectively on the driver
- Arduino's pins 8 and 9 connected to DIR and STEP respectively on the driver
- Driver's SLEEP and RESET connected to each other
- Motor wires connected to 1B 1A 2A 2B (it's a strip and I attached them in the order they come out of the motor - I didn't do any check on that)
- Drivers GND and VMOT connected to 12V DC

I just now checked the wiring again and it seems I may have inverted by mistake the GND and VMOT... could that be the cause of the frying?

Alternatively the motor wiring?


Thank you!

Ah - I don't think is relevant but to drive the motor I used a simple sketch I found elsewhere on the forum:

Code: [Select]
// testing a stepper motor with a Pololu A4988 driver board
// on an Uno the onboard led will flash with each step
// as posted on Arduino Forum at http://forum.arduino.cc/index.php?topic=208905.0

byte directionPin = 9;
byte stepPin = 8;
int numberOfSteps = 50;
byte ledPin = 13;
int pulseWidthMicros = 50;  // microseconds
int millisbetweenSteps = 50; // milliseconds

void setup()
{

 Serial.begin(9600);
 Serial.println("Starting StepperTest");
 digitalWrite(ledPin, LOW);
 
 delay(2000);

 pinMode(directionPin, OUTPUT);
 pinMode(stepPin, OUTPUT);
 pinMode(ledPin, OUTPUT);
 

 digitalWrite(directionPin, HIGH);
 for(int n = 0; n < numberOfSteps; n++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(pulseWidthMicros);
   digitalWrite(stepPin, LOW);
   
   delay(millisbetweenSteps);
   
   digitalWrite(ledPin, !digitalRead(ledPin));
 }
 
 delay(3000);
 

 digitalWrite(directionPin, LOW);
 for(int n = 0; n < numberOfSteps; n++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(pulseWidthMicros);
   digitalWrite(stepPin, LOW);
   
   delay(millisbetweenSteps);
   
   digitalWrite(ledPin, !digitalRead(ledPin));
 }
 
}

void loop()
{

}

jremington

Quote
it seems I may have inverted by mistake the GND and VMOT... could that be the cause of the frying?
Yes, if the board does not have reverse polarity protection.

You can also destroy motor drivers by disconnecting the motor leads while the power is on.

Arman5592

42/7 = 6 . Even if you wouldn't reverse polarity  , 6A kills an A4988 chip that's designed for absolute maximum 2A , no matter what cooling system you use (unless it's like liquid nitrogen)
no signature

Robin2

The motor itself is a bipolar stepper with 7Ohm per coil and nominal voltage of 42V.
I suspect you meant to say 4.2v (assuming you mean 7 ohms)
Post a link to the datasheet for the motor.

Textual wiring descriptions are notoriously easy to be misunderstood. Make a pencil drawing and post a photo of it. There is a good wiring diagram on the Pololu A4988 web page.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

MarkT

Quote
- Motor wires connected to 1B 1A 2A 2B (it's a strip and I attached them in the order they come out of the motor - I didn't do any check on that)
You need to get this right.  Take a multimeter to the motor and identify the two
windings, call one "A" and the other "B" and connect correctly.

Quote
I just now checked the wiring again and it seems I may have inverted by mistake the GND and VMOT... could that be the cause of the frying?
Nature will always judge harshly those who fail to double-check connections
before powering up...  Reverse polarity will cause total destruction.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

arssant

Hi.

Usually epson motor have a code number like EM-XXX.
Could you read it from your stepper ?

arssant

#6
Apr 09, 2015, 03:28 pm Last Edit: Apr 09, 2015, 03:30 pm by arssant
Hi

Another tip for this motor:

As I say early epson motor used to be marked as EM-XXX

EM-25X  are rated: ( ex: EM-257/EM-258 )

Nominal Voltage   7
Current   0.7
Resistance (Ohms)   10 ( as OP described on a previous topic:
http://forum.arduino.cc/index.php?topic=313992.0 )

Are we talking about same stepper motor controlled by a LB1946 with 1.75 amp max output, or this one used with popolus is another one ?





jremington

42/7 = 6 . Even if you wouldn't reverse polarity  , 6A kills an A4988 chip that's designed for absolute maximum 2A , no matter what cooling system you use (unless it's like liquid nitrogen)
The A4988 has overtemperature shutdown circuitry.

MarkT

42/7 = 6 . Even if you wouldn't reverse polarity  , 6A kills an A4988 chip that's designed for absolute maximum 2A , no matter what cooling system you use (unless it's like liquid nitrogen)
You don't understand low impedance stepper motors - the voltage rating is meaningless
and should be ignored.  These motors are current driven and the drive current and winding
resistance/inductance are key parameters.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

Go Up