Connect with us

stepper motors question

Discussion in 'Electronic Design' started by Marco Trapanese, Feb 1, 2007.

Scroll to continue with content
  1. Hello,

    I'm sorry for my English. I have a question about stepper motors.
    I used a unipolar stepper motor (200 steps/rev) to control an
    electro-mechanical brake. It must move as follow:

    1) 50-60 steps clockwise as fast as possible
    2) hold position for about 20 ms
    3) return (CCW) at initial point as fast as possible
    4) hold position for about 200 ms and then go to 1)

    Note: the load is very light.

    Using a PIC, a ULN2803 and a 12V zener on the Vdd it completes 1) or 3) in
    less of 100 ms.

    Now, I have to improve (if possible) the performances. So I ask you:

    1) What type of motors are more suitable for this application? unipolar or

    2) Should I use a chip (ex. L297/298) to driver the motor? Most of them have
    a PWM driver, I think it could be more efficient than a simple Darlington

    3) I used a "pseudo-exponential" ramp to accelerate/decelerate the motor.
    What curve do I have to follow to reach the best acceleration/deceleration?


    Marco / iw2nzm
  2. Eeyore

    Eeyore Guest

    Your English is far, far better than that of some whose first language it is !

    You also explained your question well. If only more people knew how to do that.
    Would you like to come here to teach English ?

    Sorry I can't help with your question btw.

  3. The key problem with all steppers, is that the coils are very inductive. A
    motor with a 'rating' of 12v, implies that it can support having 12v
    applied continuously to the coils without overheating. The problem is that
    the rate at which the current rises through the inductor, when the motor
    is stepped, depends initially on the inductance, and the 'drive voltage'
    feeding the circuit. Ideally then, to get a fast rise in current, what is
    needed is to momentarily increase the voltage driving the coil, far beyond
    it's 'rated' value. A few moments latter (once the current actually starts
    to flow), the resistances present, enter the equation.
    Hence, there are two basic drive choices for speed. the first it to
    permanently have the 'overvoltage' present, and limit the current to the
    rated value, with a large resistor. The second is to electronically limit
    the current with a PWM drive. The former has the advantage of simplicity,
    but the downside of huge amounts of wasted power in the limit resistors.
    The latter saves the power, but at the cost of complexity.
    Bipolar motors are generally more powerful for a given size.
    Generally, an 'overvoltage' of about 5* the motor rating is a good
    starting point. So something like a 2.4v bipolar motor, with PWM drive,
    will give much more torque at speed.
    Now, on the acceleration curve, you are going to have to answer this
    yourself. The problem here is that the torque needed to get to a faster
    speed, depends on the inertia of what you are driving (and of the drive
    itself), together with the drag terms present. Normally, you will almost
    certainly need to 'flatten' the top of your acceleration curve, as the
    drag becomes more significant.
    Consider the Analog devices A3977, with a bipolar motor, if this is big
    enough to drive your unit. Supports single stepping, and microstepping,
    with PWM drive, and gives a simple 'step/direction' connection to your

    Best Wishes

    Best Wishes
  4. John  Larkin

    John Larkin Guest

    Amplifying Roger's comments, a typical stepper will run out of torque
    in the 100 steps/second sort of range using straight voltage drive but
    can be used to many hundreds of s/s with constant-current drive.

    One easy way to jazz things up is to put resistance in series with the
    windings and increase supply voltage accordingly. This sppeds things
    up but wastes power. Bridge-drive PWM allows efficient high-voltage
    drive, but diode-clamped PWM doesn't.

    Linear or s-curve ramping should be fine, no big deal as long as the
    acceleration is controlled.

  5. James Arthur

    James Arthur Guest

    That part's made by Allegro MicroSystems...

  6. Aaargh...

    They both begin with 'A' don't they!. :)
    I have been using a whole host of Analog Devices parts recently, and just
    typed their name, instead of Allegro.

    Best Wishes
  7. Roger Hamlett wrote:


    I thank you and the other friends for the answers! I understood the problem
    and the possible solutions.
    If I'm not wrong, when I use a PWM driver I don't need to increase the power
    supply because the PWM itself causes the current to rise quickly.

    I'm downloading the A3977 datasheet...

    Marco / iw2nzm

    Thanks to Eeyore for the kind words too :)
  8. If you are only interested in the 2 positions (in and out), you
    may want to consider a solenoid instead of a stepper. You may need to
    allow some time for the solenoid coil to energize and de-energize, but
    this should be fairly easy in software. The drive circuit would be
    much simpler.
  9. Well, I guess the series resistance decrease the time costant of the coil:

    tau = L / R
    tau' (with Rs) = L / (R + Rs)

    So if I want to have the same current (or torque) in both cases I must
    increase the voltage:

    I = V / R
    I = V' / (R + Rs)

    V' = I * (R + Rs)

    As the voltage increases also increases the power wasted on the resistors.
    How should I select the correct tradeoff between tau and overvoltage/power?
    Please, may you be more specific on this point?

    Thank you!
    Marco / iw2nzm
  10. Unfortunately it isn't possible. The position is calculated by a PI
    controller and varies between about 50 and 60 steps so I have to position
    the stepper where I need.

    Marco / iw2nzm
  11. James Arthur

    James Arthur Guest

    PWM limits the motor current to a safe value, AND allows you to
    increase the
    power supply voltage, which is desirable. A higher supply voltage
    forces current
    into the motor faster, yielding faster stepping. d(i)/d(t) = E /
    L(motor) and all that.

    I'm not sure if that's what you meant.

    James Arthur
  12. No, I was wrong :)
    Now it's clear! Thanks.
    Marco / iw2nzm
  13. John Larkin

    John Larkin Guest

    Whatever works for you.
    If you use a higher-voltage supply, say 60 volts for a 12-volt motor,
    and use pwm with current feedback, the control loop can use all the
    available voltage to slam current into and out of the coils. But if
    you just use simple open-collector pwm with diode clamps, you can't
    get the current out of the coils fast.

  14. Ok!

    Marco / iw2nzm
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day