Step motor control


Results 1 to 23 of 23

Threaded View

  1. #13
    Join Date
    May 2008
    Location
    Italy
    Posts
    825


    Did you find this post helpful? Yes | No

    Default Re: Step motor control

    You can improve your motor performance in two ways:

    1) Use half step sequence ( here a sample code)

    Code:
    HStep           var byte    [8]     ' Half step sequence array
    B0              var byte
    C0              var byte
    P0              var byte
    W0              var word
    
    TRISB = 0
    
    
    P0 = 50   ' incrementing the delay will reduce the motor speed  (max 255)
    C0 = 0
    B0 = 0
    
    HalfMode:                      
    If C0 = 0 then gosub CW
    C0 = C0 + 1
    if C0 = 2 then C0 = 0
    If C0 = 0 then gosub CW
    If C0 = 1 then gosub CCW
    
    for W0 = 0 to 8192   ' one turn of the gear shaft ( 64 motor turns)
    PortB = HStep[B0]
    B0 = B0+1   
    if B0 = 8 then B0=0
    pause P0
    next W0
    
    Goto HalfMode
    
    CW:        ' half step sequence (clockwise)
    HStep[0] = 1
    HStep[1] = 3
    HStep[2] = 2
    HStep[3] = 6
    HStep[4] = 4
    HStep[5] = 12
    HStep[6] = 8
    HStep[7] = 9
    return
    
    CCW:       ' half step sequence (counter clockwise)
    HStep[0] = 9
    HStep[1] = 8
    HStep[2] = 12
    HStep[3] = 4
    HStep[4] = 6
    HStep[5] = 2
    HStep[6] = 3
    HStep[7] = 1
    return
    
    end
    2) Use a constant current setup to your motor. The simple way is to use a LM317 configured as costant current supply. See the attached schematic (Resistor 33 Ohms 1 watt. Use 24 V dc as an input to the LM317)

    cheers

    Al.
    Attached Images Attached Images  
    Last edited by aratti; - 5th September 2011 at 21:31.
    All progress began with an idea

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts