quinta-feira, 9 de fevereiro de 2012

STEPPER MOTOR


Introdution 


The motor stepper , are a electronic devices that allow, make spins fractionated per degrees  , the step motors , are constituted by two kind :  unipolar and bipolar . An unipolar step motor have four coils , that will be energized .The bipolar step motors only have  two coils, and this two coils will be polarized in the same time , but  alternating the polarity. This  effect can generate an sequence in the coils. Controlling the velocity  sequence , you can control  the spin velocity for the motor , and with the right order sequence ,  it is possible  control the spin direction of motor.


Motors convert electrical energy into mechanical energy.  A stepper motor converts electrical pulses into specific rotational movements. The movement created by each pulse is precise and repeatable, which is why stepper motors are so effective for positioning applications.
    Permanent Magnet stepper motors incorporate a permanent magnet rotor, coil windings and magnetically conductive stators. Energizing a coil winding creates an electromagnetic field with a north and south pole .The stator carries the magnetic field. The magnetic field can be altered by sequentially energizing or "stepping" the stator coils which generates rotary motion. The diagram below illustrates a typical step sequence for a two phase motor. In Step 1 phase A of a two phase stator is energized. This magnetically locks the rotor in the position shown, since unlike poles attract, W hen phase A is turned off and phase B is turned on, the rotor rotates 90° clockwise. In step 3,phase B is turned on but with the polarity reversed from Step 1, this causes another 90° rotation. In Step 4, phase A is turned off and phase B is turned on, with polarity reversed from Step2.Repeating this sequence causes the rotor to rotate clockwise in 90° steps.
The stepping sequence illustrated in figure 1 is called "one-phase on" stepping. A more common method of stepping is "two-phase on" where both phases of the motor are always energized. However, only the polarty of one phase is switched at a time. With two-phase on stepping the rotor aligns itself between the "average" north and "average" south magnetic poles.Since both phases are always on, this method gives about 40% more torque than "one-phase on" stepping.
  The motor can also be "half stepped" by inserting an off state between transitioning phases. This cuts a stepper's full step angle in half. For example, a 90° stepping motor would move 45 on each half step. However, half stepping typically results in a 20%-30% loss of torque depending on step rate when compared to the two-phase on stepping sequence. Since one of the windings is not energized during each alternating half step there is less electromagnetic force exerted on the rotor resulting in a net loss of torque.




IN ISIS PROTEUS hou have:




The unipolar motor , have generally 5 or 6 terminals terminals ,of which  4 correspond to the coils , 1 or 2 are common terminals .The following image  show the coils of a stepper unipolar motor.



The sequence of activation for the unipolar stepper motors can be of two shapes:
- With only one active input.
- Two active input.

When active two inputs the, this  motor will have more binary but the current will be more  high..
The next table show the possible activation sequence:



For this project i will use two programs:


- ISIS PROTEUS (Hardware)
- microC Pro       (software)


1.HARDWARE:



The next example show how control an a unipolar stepper motor with micro PIC 16F887.
The clock frequence is 4MHZ.
For the sequence of motor , I will save into a array.




I forgot to say .In this projetc I use the   ULN2003A Driver and the MOTOR-STEPPER. Remember the previous project when I implement an  H-Bridge with transistors  , for dont lose time and facilitate  the circuit ,  I will use the driver , but the principle is the same.








2.CODE :



// The constant for the sequence
const unsigned short PASOS[4] =
{
0b00000001,    //0
0b00000010,    //1
0b00000100,    //2
0b00001000     //3
           
};
void main( void )
{
// the variables
unsigned short PASO=0;


ANSEL=0;
ANSELH=0;
TRISB = 0xF0;
PORTB = 0;
OPTION_REG = 0; // resistance  PULL-UP.
while(1)//Bucle infinito.
{
// RIGHT DIRECTION BY  RB6 BUTTON


while( Button( &PORTB, 6, 100, 0) )
{
PORTB = PASOS[PASO];
PASO++;
if( PASO==4 )
PASO=0;
}
// LEFT DIRECTION BY  RB6 BUTTON
while( Button( &PORTB, 7, 100, 0) )
{
PORTB = PASOS[PASO];    //0  --->255 =3
PASO--;
if( PASO==255)
PASO=3;
}
}
}

Nenhum comentário:

Postar um comentário