Sunday, December 18, 2011

A Constant Torque DC Motor Speed Controller Circuit Using IC556 Explained


Controlling or varying a DC motor speed may appear to be not so difficult and you may find plenty of circuits for it. However these circuits do not guarantee consistent torque levels at lower motor speeds, making the functioning quite inefficient. Moreover at very low speeds due to insufficient torque, the motor tends to stall. Another serious drawback is that, there’s no motor reversal feature included with these circuits. The proposed circuit is completely free from the above shortcomings and is able to generate and sustain high torque levels even at lowest possible speeds.



Circuit Description

Before we discuss the proposed circuit, we would want also to learn the simpler alternative which is not so efficient, yet may be considered reasonably good as long as the load over the motor is not high and as long as the speed is not reduced to minimum levels.

The figure shows how a single 555 IC can be employed for controlling DC motor speed, we won’t go into the details, the only notable drawback of this configuration is that the torque is directly proportional to the speed of the motor.

Coming back to our main design, here we have used two 555 ICs instead of one or rather a single IC 556 that contains two 555 ICs in one package.
Briefly the proposed DC motor controller includes the following interesting features:

Speed can be varied continuously right from zero to maximum, without stalling.

The torque is never affected by the speed levels and remains constant even at minimum speed levels.

The motor rotation can be flipped or reversed within a fraction of second.

The speed is variable in both the directions of the motor rotation.

The two 555 ICs are assigned with two separate functions. One sections is configures as an astable multivibrator generating 100 Hz square wave clocks which is fed to the preceding 555 section inside the package.

The above frequency is responsible for determining the frequency of the PWM.

The transistor BC 557 is used as a constant current source which keeps the adjoining capacitor at its collector arm charged.

This develops a saw-tooth voltage across the above capacitor, which is compared inside the 556 IC with the sample voltage applied externally over over the shown pin-out. 

The sample voltage applies externally can be derived from a simple 0-12V variable voltage power supply circuit. 
This varying voltage applied to the 556 IC is used to vary the PWM of the pulses at the output and which eventually is used for the speed regulation of the connected motor.

The switch S1 is used to instantly reverse the motor direction whenever required.


Parts List

R1, R2, R6 = 1K,
R3 = 150K,
R4, R5 = 150 Ohms,
R7, R8, R9, R10 = 470 Ohms,
C1 = 0.1uF,
C2, C3 = 0.01uF,
C4 = 1uF/25V
T1, T2 = TIP122,
T3, T4 = TIP127
T5 = BC557,
T6, T7 = BC547,
D1---D4 = 1N5408,
Z1 = 4V7 400mW
IC1 = 556,
S1 = SPDT toggle switch


The above circuit was inspired from the following circuit which was published long back in elecktor electronic India magazine.


36 comments:

  1. Hello. I've been looking for a DC motor speed controller to incorporate into a street rod. The PWM design above looks like it will work perfectly for my application but I'm unsure of the continuously variable DC voltage source that is required. My application is in a standard 12 volt vehicle. Can I use a simple potentiometer or will I have to build a custom circuit as the variable DC voltage source? Thank you. Dave

    ReplyDelete
  2. Hi Dave,

    The input to the above circuit requires a continuously variable voltage input for getting equivalent motor response at the output. This can be implemented only through a variable DC power supply, for example through a simple circuit using the IC 317. This variable supply will incorporate a pot which can be directly used for varying the voltage to the circuit and the motor speed.
    If your requirement does not include a bidirectional motor movement, then the above circuit can be simplified to a great extent (by eliminating the transistor bridge network)
    Regards.

    ReplyDelete
    Replies
    1. Swagatam,thank you for responding. I've been traveling, just got home. Would you happen to have a schematic for a simple variable DC power supply using the IC317. I'm self taught in electronics and still find it difficult to design even a simple circuit from the ground up. My application is not bidirectional and my desire is to simply reduce the speed of a DC motor, not necessarily to change the speed often. Once I get the speed that suits me it will not change. Thanks again for taking the time to answer my elementary questions. Dave

      Delete
    2. Hi Dave,
      There's already one article regarding 317 power supply published in this blog, you can type 317 power supply in the search box provided at the top right of this page, you should be getting the link of that article.
      For application you just have to modify the above circuit in the following manner:
      eliminate all transistor stages after the pin #9 of the IC.
      Now at pin #9 connect R8 as its shown and in place of T6 connect a TIP 122 transistor.
      Connect its collector to the positive and connect the motor across its emitter and ground.
      Now applying the varying voltage at pin #11 should make the motor speed vary correspondingly
      Regards.

      Delete
  3. I am facing this exact problem of torque being proportional to speed in a simple PWM-based speed control setup. So, I am very excited about your solution here.

    I would like to implement your solution through on an ATMega168 PIC, which I believe should be possible, if I had any idea what is going on in your circuit.

    Unfortunately, I am much more of a programming guy than a circuitry guy, so I'm having difficulty understanding exactly how this circuit works on a theoretical level.

    If it is not too much trouble, could you explain in what way the PWM output is being varied (e.g. frequency? duration?) and how the necessary variation is being determined?

    Thank you very much!

    Jesse.

    ReplyDelete
    Replies
    1. The circuit is basically wired around the IC 556 which is nothing but a couple of IC 555.
      We all know how versatile the IC 555 is. Here one of the ICs decides the frequency of the PWM, while the second IC responds to this frequency and also to the externally applied input varying voltage and generates an output having correspondingly varying pulses.
      The frequency remains constant as the first IC generates it at a constant rate, however the pulse width constantly varies depending upon the voltage that's being applied externally. The pulse width is directly proportional to the applied voltage level.
      This is the basic principle through which the circuit operates.

      You may refer the IC555 datasheet for more information.

      Regards.

      Delete
    2. Thanks for your response. I'm going to build this myself. I'm putting together my order on Digikey, and that's generating some more questions:

      -Wattage of resistors? I was going to go 1W on all
      -Voltage of capacitors? I was going to go 25V on all to match one specified
      -Voltage of BC547 & BC557 transistors? Options: 45V or 30V
      -Frequency of 556? Options: 500kHz, 1MHz, 2.1MHz, 2.5MHz, 2.7MHz
      -Can I substitute a 500mW Zener diode? No 400mW in stock, all other specs same

      Thanks again,

      Jesse.

      Delete
    3. Resistors are all 1/4 watt, 5%, CFR.
      25 V for the capacitors is OK.
      BC547 and 557 are specified with 45V (CE).
      The frequency is around 100Hz.
      zener wattage is not critical, any value will do.
      Thanks and Regards.

      Delete
    4. Hello, again,

      While I am waiting for my components to arrive, I am working to understand the circuit. I would like to ask three questions, please. The links lead to modified images of your circuit diagram, for reference.

      1. I do not need to switch directions. Have I correctly modified the circuit to remove the switching ability: Motor Speed Control, No Switch

      2. I do not understand how the upper left quadrant of your diagram functions like a standard astable setup for a 555/556. I have changed it slightly in the green circle to show what I would expect an ~100Hz (93Hz) astable setup would look like. Am I incorrect? Motor Speed Control, Revised to Generic Astable Circuit

      3. I really have no idea what the components in the upper right quadrant circled below do. Could you please explain the theory behind this circuitry? Area I don't understand

      Thank you again for your time and your patience!

      Best,

      Jesse.

      Delete
    5. Hi,

      In the first link, your approach is correct but the wiring is terribly wrong :-)

      The second link is OK if you have confirmed the calculations.

      As explained in the article the transistor BC557 and the associated components function as a constant current source and a saw-tooth generator, required for feeding the PWM generator stage.

      The following article, also written by me will help you to understand the concept more accurately:

      http://www.brighthub.com/engineering/electrical/articles/123681.aspx

      Regards.

      Delete
    6. Haha, yes. It was the quickest way to draw it from the original diagram.

      Yes, I have done the math and it works out.

      Thanks for the link to the article; that is just what I was looking for!

      Best,

      Jesse.

      Delete
  4. Hello, again,

    So, I built the circuit from your diagram and am not experiencing the low-rpm torque and low-speed start I had been hoping for. Thinking I had made a mistake, I built it again from a bare board, but got the same results.

    With the various 12V brushed DC motors I've tried, I cannot get a start below 2400 RPM (3.2V input to pin 11/Control B). If I start at 2400 RPM, I can then slow the motor down from there, but stall torque is very, very low and the motor cannot restart itself. This is similar performance to simple PWM solutions I have tried.

    I'm not sure if there is a way that you can help me trouble-shoot this. I have included a photograph of my breadboard, for whatever that's worth. Any input would be greatly appreciated. I really want to achieve the low-RPM torque you say is possible.

    Best,

    Jesse.

    ReplyDelete
    Replies
    1. Hi,

      This circuit was tested by me and I found the results very satisfactory and that's why I expressed my confidence in the circuit. I had used two 555 ICs in place of a single 556, but I don't think that's any way related to the performance of the circuit.
      Earlier I had tried the ordinary single 555 type configuration and could not initiate the motor at lower speeds and every time had to provide a manual spin to the motor spindle for making it start, however the above circuit was completely free from this problem.
      Did you use a Darlington type of transistor at the output? Because ordinary transistors cannot provide the required leverage, moreover the current of the power supply should also be adequate or rather on the higher side.
      I really hope it works for you as expected, I don't seem to get any other clue right now.

      Thanks.

      Delete
  5. I am trying to make a grinder (like a dremel) with full speed control 50 to 5,000 rpms. It has to be compact and cordless. I have tried a couple of options, but I cannot get consistent low speeds. I would like to use your circuit and the variable dc voltage supply. Would you mind providing any suggestions on a motor that might work well. I am going to modify to eliminmate the bi-directional and would like to lower the voltage to 9 volts to save space. Any advice is greatly appreciated, as I am a novice. Thanks Gdgolden

    ReplyDelete
    Replies
    1. The above circuit is just a control unit which is responsible for generating the varying PWM outputs, the actual power to the motor will depend on the transistor used at the output.
      Any DC motor can be used as per the need, the output transistor will need to be matched with it, that's the only criterion.
      If you are very new in the field then I wouldn't advise to build this circuit as it's relatively difficult to optimize and understand.

      Delete
  6. hello if you connect the variable 0-12 input where will you connect the ground from power source?

    ReplyDelete
    Replies
    1. The variable power supply ground will go to the ground of the circuit.

      Delete
  7. hi i ma a student n wish to do ur dis as my project can u plz guide me with some imp steps....and can i know d ratings of the dc motor used so dat i can use according to my application..aishwarya

    ReplyDelete
    Replies
    1. Hi,
      This circuit will be difficult for you considering you are new in the field, so please do not try this circuit.

      You may try this one instead:

      http://homemadecircuitsandschematics.blogspot.in/2012/05/make-this-pwm-based-dc-motor-speed.html

      Delete
    2. bt m a engineeing student n not totally new. n sir can u plz explain y d ic is operated on 12v as in awl ics basically work on 5v so dis wont heat d ic up ?

      Delete
    3. The IC is rated for operating from 3 to 15V safely, so 12V is not a problem.

      Delete
  8. ohh thanx :) i decided to use dis dc motor 4 sprinkle irrigation using pumb wich will b driven by the dc motor. can u suggest me d ratings of the dc motor 4 dis application n also d pump n sprinkler if u hav any idea...aishwarya

    ReplyDelete
    Replies
    1. I am sorry I have no idea what motor would suit your application, it should be a considerably bigger sized motor but not sure about the exact rating.

      Delete
    2. okk thank you. can u please explain the how the T1, T2, T3 and T4 work and what does the diodes do? also T6 and T7 fuctioning.

      Delete
    3. T1---T4 forms a bridge configuration to enable the motor rotate both ways, diodes are for cancelling the back emf from the motor and for safeguarding the transistors.
      T6 and T7 are for enabling reversing of the motor at any instant.

      Delete
  9. can i get layout and schematic of this project to make it on the pcb if u can give it vl b grateful.

    ReplyDelete
    Replies
    1. I'll try to update it but not sure when I can do it.

      Delete
  10. okay thanx if u can mail it on aishwaryads28@gmail.com if possible. thanx

    ReplyDelete
  11. Having built this circuit as shown and having it not work. The output of the first stage had a constant dc output, no oscillator.
    I went to the data sheets and formulas to see what's wrong. The configuration of the astable oscillator is correct but the resistor values are way out to lunch. The configuration is for a 50% duty cycle oscillator, not the standard astable cct. Therefore, for 100Hz, 50% duty cycle, C = 0.1E-6 uF,
    Ra=R3= 82Kohms and Rb=R4= 33Kohms.
    F=1.44 / ((Ra+2Rb)C)
    F= 97Hz

    The second stage looks right and the 150ohm resistor is not really necessary according to the LM555 datasheet. Check the "linear ramp" configuration, which is what the second stage is based on. I'm going to rewire and test again. I'll let you know how it goes.
    Cheers
    LG92 Bsc, EE

    ReplyDelete
    Replies
    1. You may refer to the image shown at the bottom of the article....the transistor is BC557.

      Delete
  12. Hi, I'm trying to control motor dc velocity through an IC L293d and PWM generated by arduino but when I vary the duty cycle of pwm for low velocity the motor loses its torque and can't raise a constant load however with a duty cycle which generates high velocity it can, what do you advice me for that problem.

    The motor source is diferent from arduino source and is enough to give high current

    Thanks

    ReplyDelete
    Replies
    1. Hi,

      It would be difficult to troubleshoot without assessing the pwm status over an oscilloscope.....

      Delete
  13. But I know the pwm duty cycle, maximum duty cycle for high speeds and low duty cycle for low speeds, this pwm is generated with arduino trough its analogWrite function.

    ReplyDelete
    Replies
    1. For troubleshooting you will need an oscilloscope.

      Delete
  14. I set up the circuit and it worked perfectly as expected.
    Would you if possible upgrade to 24 Vdc voltage, using two batteries automotive 12volts 50 A

    ReplyDelete
    Replies
    1. can be easily done, just provide the bridge section with 24V and the rest of the circuit with 12V via 7812 IC.

      Delete