Electrical – Reduce heat dissipation in Stepper motor

arduinoheatstepper motorstepper-driver

I'm trying to control stepper motor(NEMA 23/3A per phase) datasheet

I'm using Leadshine M542 Microstepper Driver datasheet

Its controlled by an Arduino UNO with simple potentiometer that can control the speed of the motor.

After starting the motor motor dissipate more heat(about 60 degree of Celsius) than usual.What is the solution for reduce heat dissipation of the motor?

Arduino code

#define DIR 8
#define STP 9
#define POT A0

unsigned int val;

void setup() {
  //Serial.begin(9600);
  pinMode(DIR, OUTPUT);
  pinMode(STP, OUTPUT);

  digitalWrite(DIR, HIGH);

}

void loop() {
    val = map(analogRead(POT), 0, 1023, 150, 1500);
    //Serial.println(val);
    digitalWrite(STP, HIGH);
    delayMicroseconds(val);
    digitalWrite(STP, LOW);
    delayMicroseconds(10  0);

}

Best Answer

60C is not an unusually high temperature for a stepper motor, though it is hot enough to surprise somebody who doesn't expect it.

If you want the motor to run cooler, then you have two options, and you can use both.

1) Improve the removal of heat from the motor. Mount it on a heatsink, or blow a fan at it.

2) Program the stepper motor driver to deliver less current to it in the hold, this will however reduce the hold torque. If that's not sufficient, program it to deliver less current when stepping, this will however reduce the driving torque.

Option 3) Stepper motors are very inefficient, and get hot. Replace it with a conventional motor, either brushed or BLDC, servo-controlled if you need accurate position.

Related Topic