Thursday, 19 January 2012

Stepper Controller

Stepper is an electromechanical device that works on electrical pulses that periodically flows into the motor, then each pulse is converted into motion, that's why it is called a stepper. Stepper motors are discussed is a unipolar stepper motor which has 4 phases and the length step of 1.8 ° per step (phase). The smaller the step length per step of a stepper motor, it is the better.

Stepper motors have many advantages than DC motors. Some of these are: easier to manage and can result in a slow rotation. Therefore, in certain applications more and more people choose to use stepper motors than DC motors.

In order to move the stepper motor can rotate then the pulse is given as shown below


look a video demonstration

To generate a periodic pulse above, there are several ways:
  1. Using IC 555 as a pulse generator, and amplifier circuits (solid state switches) because the stepper motor requires a sufficiently large electric currents between 1 to 2 Amp.
  2. Using a IC microcontroller that has been programmed to generate pulses at its ports.
Here will be discussed using IC microcontroller AT89S51.

Port 0 uC is connected to the data of stepper motor as shown in the figure below. Between uC and stepper motors are IC ULN2803, this IC will provide the voltage supply data from the uC to a stepper motor because without this IC, output voltage of the uC will not be able to drive a stepper motor stepper motor, although it has given voltage 12V.

Programs generate pulses to drive a stepper motor:

start:
mov a, #1                            ; fill the accumulator with the value 00000001
mov r1,#4

main:
mov P0,a                             ; fill P0 with values ​​in the accumulator
rl a                                       ; rotate left  the accumulator value by one bit.
Call delay                             ; call delay, because rotate process need times
djnz r1,main                          ; decrease the value in register 1, if not zero then jump to the main
sjmp start                              ; if the register 1 is zero then a jump to start, re-fill the values of the accumulator and register 1

delay:
mov r2,#255
dly :
mov r3,#20h
djnz r3,$
djnz r2,dly
ret
end

Code rl  a on the above program is a primary function to generate a periodic pulse that will make the stepper motor rotates.

Port 0     P0.0     P0.1    P0.2       P0.3
Rl a          1           0         0           0
Rl a          0           1         0           0
Rl a          0           0         1           0
Rl a          0           0         0           1

look a video demonstration

2 comments:

mikexplorer said...

Formal education will make you a living; self-education will make you a fortune.

mikexplorer said...

happy Easter to you.. :)

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Bluehost Review