Sunday, 13 March 2011

Stepper Motors

Stepper motors are motors which turn due electromagnetic coils pulling the axle round in a circle.  There is an amination of this on this website:

Stepper Motor

This is useful for two reasons: you can make the stepper motor turn to a particular position and it has a "holding torque" meaning that as long as two of the magnets are energised it can hold something in position.

To make the stepper motor turn you must use a particular pattern to make sure that the coils energise in a circle.  To make the stepper motor turn clockwise you type the pattern in as seen, to make it turn anticlockwise you simply use the same pattern but in reverse:

i.e. 

symbol delay = b0
let delay = 100

clock: let pins = %10100000
           pause delay
           let pins = %10010000
           pause delay
           let pins = %01010000
           pause delay
           let pins = %01100000
           pause delay
           goto clock

anti:    let pins = %01100000
           pause delay
           let pins = %01010000
           pause delay
           let pins = %10010000
           pause delay
           let pins = %10100000
           pause delay
           goto anti

Repeating like this will simply make the stepper motor turn continuously.   By using b0 as the delay, we can quickly change the speed of the stepper motor by changing the value of "delay"  The smaller the number the faster the motor will turn, but if you try to turn too quickly the magnets will not have time to pull the axle round so it may not turn at all.

To make the motor turn to a specific position, we must use a FOR . . . NEXT . . . loop.  This will allow us to repeat the pattern a set number of times.  Each line of the program is 7.5 degrees, so each 4 line pattern is 30 degrees.  Therefore to turn one complete revolution we must repeat the pattern 12 times.

i.e.

symbol counter = b0
symbol delay = b1
let delay = 100

clock: for counter = 1 to 12
                  let pins = %10100000
                  pause delay
                  let pins = %10010000
                  pause delay
                  let pins = %01010000
                  pause delay
                  let pins = %01100000
                  pause delay
            next counter


The stepper motor requires a 12v supply and the microprocessor can only supply a 5v signal.  Therefore we must use an external power supply (a black box) to connect to our output driver.

No comments:

Post a Comment