Beruflich Dokumente
Kultur Dokumente
Two coils of the stepper motor will activate per one step.The current required in each
winding is either -Imax or +Imax. A step sequence of 4 full steps makes up one complete step cycle.High
torque can be handle with compared to other modes because the rotor is always hold by the
magnetic field of two coil. In the meantime high power consumption due to two coil consumption
per one step. Full step is same as the odd numbered positions from the half stepping sequence.
Phase Diagram
Timing Diagram
Step 2
Step 3
Step 4
0 = Low
Half Step
In the Half Step mode the stepper motor windings can be energized either two pair or single coil.
The current required in each winding is either -Imax, 0, or +Imax. In this mode the motor can achieve
high speed. Low power consumption rather than full step mode. A step sequence of 8 half steps
makes up one complete step cycle. High resolution can be achieved rather than half step or wave
step mode. Simply its doubles the step angle of Full step. The Half step operation can represents as a
combination of Full Step and Wave stepping modes.
Phase Diagram
Timing Diagram
Step 2
Step 3
Step 4
Step 5
Step 6
Step 7
Step 8
0 = Low
Wave Step
In the wave stepping one coils will activate per one step. It is same as the even numbered
positions from the half stepping sequence. The current required in each winding is either -Imax, 0 or
+Imax. A step sequence of 4 full steps makes up one complete step cycle. Low power consumption
due to one coil consumption per step. But less torque. This method is not widely using in motor
controlling.
Phase Diagram
Timing Diagram
Step 2
0 = Low
Step 3
Step 4
This motor having 5 leads making four phase in the motor. The motor can be driven in either
Unipolar of Bipolar mode. For the Bipolar mode need to avoid the Red Wire (common Wire) by
making the motor is a two phase motor.
Motor Specifications
Step Angle =
= 0.087
= 4096
= 512
Circuit Diagram
Circuit Implementation
L298 H-Bridge
Arduino Programme
Full Step
int switchPin =7; // choose the input pin (for a pushbutton)
int val = 0; // variable for reading the pin status
int counter = 0;
int anti=0;
int currentState = 0;
int previousState = 0;
long interval = 2;
int i=0;
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(5, INPUT);
pinMode(7, INPUT);
}
void loop() {
//FULL STEP
// CW
for (i=0;i<=511;i++){
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(interval);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(interval);
}
exit(0);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);}
// }
exit(0);
HALF STEP
//HALF STEP
for (i=0;i<=511;i++){
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(interval);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(interval);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
delay(interval);
}
exit(0);
WAVE STEP
//WAVE Step
for (i=0;i<=511;i++){
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
delay(interval);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(interval);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
delay(interval);
}
exit(0);
}