Stepper unipolar

Hi all.

I am trying to make this stepper works http://www.nmbtc.com/pdf/motors/PM25S024.pdf

Completly unsucessfull. It has 5 wires and im trying to drive with uln2003 (also i tried with a h-bridge). I think im doing something wrong.

With 5 V its get very hot and consume 0.8 Amp. It tries to move but very random and without torque.

Any help please?

I think im doing something wrong.

So do I but unless you tell us exactly what you are doing then who knows what you are getting wrong.
So schematic, code and photograph all required.

Grumpy_Mike:
So do I but unless you tell us exactly what you are doing then who knows what you are getting wrong.
So schematic, code and photograph all required.

You are right sorry.

/*
Step C0 C1 C2 C3
1 1 0 1 0
2 0 0 1 0
3 0 1 1 0
4 0 1 0 0
5 0 1 0 1
6 0 0 0 1
7 1 0 0 1
8 1 0 0 0

*/
int motorPin1 = 6;//Coil 1
int motorPin2 = 8; //Coil2
int motorPin3 = 7; //Coil3
int motorPin4 = 9; //Coil4
int delayTime = 500;

void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

pinMode(13,OUTPUT);
Serial.begin(9600);
}

int coil1s, coil2s, coil3s, coil4s;

void loop() {

if(Serial.available()==4){

coil1s=Serial.read()-48;
coil2s=Serial.read()-48;
coil3s=Serial.read()-48;
coil4s=Serial.read()-48;

Serial.print(coil1s,DEC);
Serial.print(coil2s,DEC);
Serial.print(coil3s,DEC);
Serial.println(coil4s,DEC);

setcoils(coil1s,coil2s,coil3s,coil4s);
}

/*setcoilds(1,0,0,0);
setcoilds(0,1,0,0);
setcoilds(0,0,1,0);
setcoilds(0,0,0,1); */
}

void setcoils(int coil1,int coil2,int coil3,int coil4){

digitalWrite(motorPin1, coil1);
digitalWrite(motorPin2, coil2);
digitalWrite(motorPin3, coil3);
digitalWrite(motorPin4, coil4);
digitalWrite(13,!digitalRead(13));
delay(delayTime);

}

The Arduino pins are connected to ULN2003 inputs. Motor pins are connected to the ULN2003 outputs.

I checked with multimeter the resistance between the wires and the red one of the motor gave different resistance so i supposed is the common.

I connected the motor common to the ULN2003 common and to external 7V (aprox) powersupply and join the grounds to Arduino.

Now it gets torque with some combinations but I cant find a combination to make it turn.

6-wire Unipolar steppers have two commons and 4 windings. Both commons should go to Motor Power supply and ULN2003 should sink current for four windings.

stepper-wiring.jpg

raschemmel:
6-wire Unipolar steppers have two commons and 4 windings. Both commons should go to Motor Power supply and ULN2003 should sink current for four windings.

Thank you for your response. This one have 5 wires. I guess the six one is already shorted inside ¿?

I connected the motor common to the ULN2003 common and to external 7V (aprox) powersupply and join the grounds to Arduino.

What's wrong with the above statement ?

Then the one common should go to Motor Power.

I can't see how anything can get hot with that motor at 7V, it claims to have 70 ohm
windings - have you checked the winding resistance?

I checked with multimeter the resistance between the wires and the red one of the motor gave different resistance so i supposed is the common.

The common one is the one where the resistance to all other wires is the SAME.

All windings should have approx the same resistance to the common wire based on the schematic . (see attached)

The motor windings should be in series with Motor power +V and ULN2003

stepper-motor-controller-by-uln2003.jpg

raschemmel:
What’s wrong with the above statement ?

Then the one common should go to Motor Power.

Common goes to Power motor (external 7V).

MarkT:
I can’t see how anything can get hot with that motor at 7V, it claims to have 70 ohm
windings - have you checked the winding resistance?

Grumpy_Mike:
The common one is the one where the resistance to all other wires is the SAME.

Red-allwires gives = 14.2 Ohms

Rest of the wires between them (except red) = 27.4 Ohms

raschemmel:
All windings should have approx the same resistance to the common wire based on the schematic . (see attached)

The motor windings should be in series with Motor power +V and ULN2003

Sorry I dont understand very good the statement. What is the motor windings (the coils ¿?). How do I wire in series with the Motor power +V?

Attached my scheme.

What is the motor windings (the coils)

Yes it is the coils.
The circuit seems to be correct.
However with 7V and a 14.2R load you are drawing 0.49 Amps.
The ULN2003 is only rated at 500mA per channel so that is very close. It is not good to run bang up against the limit like that. What is more while each channel is rated at 500mA the chip as a whole has a thermal limit which means the total current being switched at any time is limited. This link explains it:-
http://www.thebox.myzen.co.uk/Tutorial/Power_Examples.html

So you are overloading that chip from a thermal point of view.

Grumpy_Mike:
Yes it is the coils.
The circuit seems to be correct.
However with 7V and a 14.2R load you are drawing 0.49 Amps.
The ULN2003 is only rated at 500mA per channel so that is very close. It is not good to run bang up against the limit like that. What is more while each channel is rated at 500mA the chip as a whole has a thermal limit which means the total current being switched at any time is limited. This link explains it:-
Power Examples

So you are overloading that chip from a thermal point of view.

Thank you Mike.

We can forget all... I have used new chip 2003AN and new stepper (same model) and its workihng ARRRRRRR (so much time wasted). It seems it was broken or the driver or the motor. It gets not so hot now but a little bit.

Would you recomend an external circuit for enable/disable power of the motor when no need to rotate?

Thank you all.

Only if your application can stand it. When there is no current throught the coils there is no torque and so any load on the motor could move it.

and its workihng ARRRRRRR (so much time wasted).

Good job on seeing it through to resolution ...

FYI, there are chip heatsinks available that can be put on top of the chip with thermal paste. I used one once on a 6800 CPU I was overclocking to get better resolution on a music generation project.

Grumpy_Mike:
Only if your application can stand it. When there is no current throught the coils there is no torque and so any load on the motor could move it.

Yes but the motor is still very hot. I would like to add a digital signal to enable/disable the motor power. What could be good? A transistor? Operational? Relay?

You could add a P-channel Mosfet as a High-Side switch in series between the +V motor power and the common wire or you could add an N-Channel Mosfet as a Low-side switch in series between the chip and Motor power GND (-V Motor Power)

Note: As Mike pointed out, unlike dc motors, a stepper motor requires power to keep the shaft from moving when not stepping. If the application does not exert any torque on the shaft when not stepping it would be ok to disable the motor but if the motor is holding some load against gravity it wouldn't work because the load would drop as soon as you disable the motor.

Aruen:
Yes but the motor is still very hot. I would like to add a digital signal to enable/disable the motor power. What could be good?

Just turn off all the currently on coils. Keep a note of what they are so you can start with the same pattern.

Yes but the motor is still very hot.

Why don’t you add a DS18B20 temp sensor (or thermocouple) on the motor to monitor the temperature ?

raschemmel:
You could add a P-channel Mosfet as a High-Side switch in series between the +V motor power and the common wire or you could add an N-Channel Mosfet as a Low-side switch in series between the chip and Motor power GND (-V Motor Power)

Note: As Mike pointed out, unlike dc motors, a stepper motor requires power to keep the shaft from moving when not stepping. If the application does not exert any torque on the shaft when not stepping it would be ok to disable the motor but if the motor is holding some load against gravity it wouldn't work because the load would drop as soon as you disable the motor.

Seems interesting I will save this info for the future. Thank you very much.

Grumpy_Mike:
Just turn off all the currently on coils. Keep a note of what they are so you can start with the same pattern.

Thanks Mike you rock! I did and gets no hot while disabling all coils. I will use this solution.

raschemmel:
Why don't you add a DS18B20 temp sensor (or thermocouple) on the motor to monitor the temperature ?

I had a bad times with DS18B20 hehe http://forum.arduino.cc/index.php?topic=266205.0

Danke all!!!!!