Stepper motor heat

Thanks for your reply!

Well I expected something like that. :frowning:
But I powered only two of them. The third one isnt connected yet.

Currently I run the drivers/steppers in 1/8 microstepping mode. So 200 -> 1600 steps
per revolution.

  1. Does that mean that the "stepping mode" (1/1,1/2,1/4,1/8) influences the energy they
    draw? How to calculate that?
  2. What do you excatly mean by "wave mode"?
  3. The steppers are energized one after another in my code so I thought that each coil
    is only energized at a time. But yes you are right that would be 990mA for only the
    steppers if they are powered the same time. In 1/8 microstepping mode would a power
    supply of 1.5A be sufficient? Or do I have to calculate 0.33A x 2 per stepper -> 1.98A?
  4. Does microstepping influence the holding torque?

To get around the power supply issue I would buy a new one:
http://www.reichelt.de/Festspannungsnetzteile/SNT-2250-12V/index.html?;ACTION=3;LA=2;ARTICLE=111184;GROUPID=4946;artnr=SNT+2250+12V;SID=12Tz7cdH8AAAIAADWShdY8f8e702b3031b2344d685edfff25f030

Even if you dont speak german -> Its rated: 2250mA, 12V. Would that be sufficient?

My test code:

int motorDirPin = 9;
int motorXPin = 12;
int motorYPin = 11;
int motorZPin =10;
long u = 0;
int stepTime = 0;

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

void setup() {                
  lcd.begin(16, 2);
  pinMode(motorDirPin, OUTPUT);     
  pinMode(motorXPin, OUTPUT);
  pinMode(motorYPin, OUTPUT);
  pinMode(motorZPin, OUTPUT);
  digitalWrite(motorDirPin, LOW);
  digitalWrite(motorXPin, LOW);
  digitalWrite(motorYPin, LOW);
  digitalWrite(motorZPin, LOW);
}


void loop() {
  stepTime = millis();
  for(int i=0;i<1600;i++){
      digitalWrite(motorDirPin, HIGH);
      digitalWrite(motorXPin, HIGH);
      digitalWrite(motorDirPin, HIGH);
      digitalWrite(motorZPin, HIGH);
      delayMicroseconds(100);         
      digitalWrite(motorXPin, LOW);
      digitalWrite(motorZPin, LOW); 
      delayMicroseconds(100);
  }
  stepTime = millis()-stepTime;
  //delay(1);
  lcd.setCursor(0, 0); 
  lcd.print(u);
    lcd.setCursor(0, 1);
    lcd.print("Turnspeed ");
    lcd.print(stepTime);
    lcd.print("ms");
    u++;
    delay(1000);
}