Sunday, December 18, 2011

PWM Constant Torque Motor Speed Controller Circuit Using IC556

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 PWM motor controller 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 the proposed high torque DC motor speed controller circuit 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 for the proposed high torque DC motor speed controller circuit

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.


76 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
  15. Hi Thanks for the circuit,

    My motor draw about 8 to 10 Amp.
    Can I use the same transistor above or do i need to use TIP3055?
    Thanks in advance.

    ReplyDelete
    Replies
    1. For 10 amps you will have to use TIP35/36 pairs with BC547/557 Darlington base drives.

      Delete
  16. Thanks Swagatam Majumdar. I will try.

    ReplyDelete
  17. Hi Swagatan, i m trying to use TIP3055 n TIP2955 pair, but motor not turning at all. Can this b not suitable with thèse transistor. Please advise. Thanks

    ReplyDelete
    Replies
    1. Hi Ye,

      the power transistors will require higher base drive, so you must add BC547/BC557 in Darlington configuration with your transistor in order to make them conduct.

      Delete
  18. Hi Swagatan, thanks for your advise.
    I tried with TIP35, just to on/off the motor at collector.
    I put the current meter at collector which show about 6Amp.
    But TIP35 become extremely hot although I use heat sink.
    It current rating at collector is 25Amp? Please advise me. Thanks

    ReplyDelete
    Replies
    1. Hi Ye,

      Did you connect a diode across the motor terminals for protecting the TIP35 from back emfs? The device may be getting hot because it may not be saturating fully, try reducing the base resistor value until the transistor becomes fully saturated and stops getting too hot.

      Delete
  19. Hi Swagatam, just found your blog. Thank you for so many interesting circuits and ideas (many I remember from similar circuits from old magazines). Just one question...are the connections correct for T6 and T7 ( closed circuit between emitter to emitter), did I miss something here ?

    ReplyDelete
    Replies
    1. Hi Bracelectron,

      Thanks for pointing it out, yes the emitter junction needs to be connected to the negative(0) rail of the supply, by mistake it's not shown in the diagram.

      Delete
  20. Hi

    I will use a 12v DC motor that draws around 250mA with this circuit. Do I need to modify the circuit for use with this motor. I don't care if the components or overkill. I just want to know if it'll work.

    Also, do I really need a powersupply? Can't I just as well use a pot and take the power from the same powersupply that powers the 556?

    ReplyDelete
    Replies
    1. yes the same circuit will work for your application.
      you can simply use a pot as a potential divider for getting a variable control from the existing power supply itself, connect the slider arm of the pot to pin#5 input and the other two leads to positive and negative respectively.

      Delete
    2. Thanks

      I have some problems though.

      Firstly, the pot I use doesn't seem to work. I have a cermet variable resistor that I'm trying to use. I connect 12V to one of the outer pins and ground to the opposite outer pin. Then, I connect the middle pin to pin#11 on the 556. You said pin#5 but I guess you meant pin#11 right? I've tried pin#5 but that doesn't work either. I have measured the voltage between one of the outer pins and the middle pin of the pot and the voltage goes between 0V and approx. 8,7V when I turn its nob. Still the rpm of the motor isn't affected when I turn the nob of the pot. If I turn the pot all the way down, the motor stops but when I start to turn the nob, the motor reaches full rpm emediately. Do you have any idea what I'm doing wrong here?

      Also, the direction of rotation doesn't seem to work. It works only in one direction. I have set the circuit up, teared it down, and set it up again. Same results. I'm using the exact same components and component values as in you diagram on this page. I measure the current between 12VDC and the T1-T4 bridge and I get current when the switch is in one position but not when I switch to the other position. What could be the issue here? I'm not the best when it comes to electronics but I try to learn as I go. I try to do as much troubleshooting as possible but with this one, I really can't figure out what's wrong.

      Delete
    3. Please try afresh and make the circuit which is shown at the bottom of the article, inside the magazine snippet.

      Use BC557 for the PNP transistor instead of BC547 which is wrongly printed.

      You can eliminate the lower portion of the design initially and test the working using the following format, once the basic format is confirmed you can proceed with the lower portion of the circuit.

      Make it in this format:

      http://1.bp.blogspot.com/-jONLYQ8Ehro/UkD_gzAjA-I/AAAAAAAAFSk/nt6vxMDF9RU/s1600/ELC%20circuit.png

      Delete
    4. Thanks. Working now.

      I'm just wondering one thing. Allthough the voltage across the middle and one of the outer pins on the pot is just below 9 V, the voltage across the motor is only about 3 V. Is that correct or is something wrong? Also, the speed increase is very choppy and not all that smooth. I know it can be, cause it was very smooth using another circuit with one 555 timer. Only problem with that circuit was that the torque was low and the motor didn't start without mechanical help when voltage was aplied if the pot wasn't turned all the way up.

      Delete
    5. you can try adding a 1000uF/25V capacitor right across the motor terminals, this would hopefully arrest the stuttering.

      The voltage at the pot terminals is constant DC while across the motor it's chopped DC so naturally the meter will read an average lower value voltage across the motor, of course that will depend on the position of the pot.

      Delete
    6. I have to reevaluate my last statement. The circuit does NOT work for me. I imagine it's intended to work like an rpm control right? It doesn't. The change in direction of rotation works great but the rpm control does not. I have followed all your tips. I have rebuilt the circuit many times now but it doesn't work for me with any small motor that I've tried with it. When power is applied, the rpm starts high and then it just gets marginally faster when pot is turned up. It doesn't go gradually from zero to full speed as pot is gradually turned up as I imagine it to work.

      Is this circuit any good? I'm starting to believe that it's something wrong with the design.

      Delete
    7. The circuit shown in the second image is absolutely good, I have tested it myself and could reduce the motor RPM right upto zero without affecting the torque.
      Try applying the control voltage from an external variable power supply, I did it in that way for my prototype.

      Delete
  21. Sir my application is to control dc motor which has a high capacity (truck wiper motor) with quick start & stop. I thick we can't use this circuit for same application.So please give any idea to control this motor & if there is possible of quick start stop control of dc motor with speed control please give circuit for same to me.sir please reply as soon as possible.

    ReplyDelete
  22. Sir we see your above comment that use TIP35/36 pairs with BC547/557 Darlington base drives for high current supply application for 12v & appo. 7A but we don't this things so please email me circuits with this verification & as mention in above comment it is possible quick start & stop control of dc motor . then give circuit include quick start stop of dc motor & speed control. thank you..
    email id: jigneshpatel51092@gmail.com

    ReplyDelete
    Replies
    1. Jignesh you can use the above circuit for controlling 24V motor also, but for quick start and stop we'll have to add an additional stage to it....if i get time i'll try to update the above article with your required design

      Delete
  23. sir it is possible to use this circuit for high current application or require changes then please guide me.
    & as mention about my requirement for quick start stop application please email me as soon as possible sir integrated circuit for both speed control & quick start stop at above email id.because we require this circuit for our project application & sumission for it on 22 dec 2013. thank you..

    ReplyDelete
    Replies
    1. For high current operation you will have to upgrade the transistors appropriately using tip35/36 transistors.
      I am sorry due to high work load i won't be able to produce the modifications quickly.

      Delete
  24. I am looking for a motor and a controller for a lathe. I am researching both AC VFD and DC PWM controllers. I need it to be able to provide good low speed torque, to be able to plug in directly to a 120 V single phase standard house electrical outlet, and to be able to handle 1 full HorsePower or 750 watts. The gear ratio on my lathe is right at 8.5 to 1. I need it to run with high torque at the lowest recommended spindle speed of 60rpm. That would make the min rpm for the motor right around 510rpm. The spindle speed can max out anywhere between 300rpm and 600rpm. That would make the motor to max out between 2550rpm and 5100rpm. My first question is: What speed rated DC Motor should I get?

    ReplyDelete
    Replies
    1. I am sorry I have no idea regarding motors used in heavy equipment such as lathe machines...so can't help with the specs.

      Delete
  25. Hi! Is this applicable for 24v dc starter motor?

    ReplyDelete
    Replies
    1. Hi, ...yes for any kind of DC motor this circuit would work

      Delete
  26. hi...... i have to design the same project,'' speed control with the rotation in both direction''. should i use exact same circuit connections using two ic555 with the same values as mentioned above in the diagram....???? why we are using PNP & NPN pairs. is it nt possible to use all four transistors (t1-t4) and bc 557 of NPN category. i am nt able to understand the working operation of PNP transistor in this circuit diagram.

    ReplyDelete
    Replies
    1. you'll have to d exactly as shown in the diagram, here PNPs are necessary for allowing motor reversal.
      the BC557 in between the 555 ICs make sure the IC generates constant PWMs even during input voltage flutuaions

      Delete
  27. should i use the circuit shown in d magazine or the circuit modifie by you...? Can u plz explain me how PNPs will conduct. As think in the forward rotation of motor tip127 will not conduct bcoz the direction of flowing current in PNPs is from emitter to collector as shown in tha data sheet . I m vry cnfused about the working of PNPs in this circuit.

    ReplyDelete
    Replies
    1. make the one which is shown in the magazine.

      the transistors will conduct diagonally....these pairs can be alternately switched for achieving reverse actions.

      Delete
  28. i dont know connection of 16 pin not gate ic4049. can u plz help me for the connection of ic 4049. and what will be the modification in circuit if forward and reverse breaking is also required.

    ReplyDelete
    Replies
    1. you ca refer to the following image for help:

      http://4.bp.blogspot.com/-SO3spUOfSR4/T5jgw8Pe7FI/AAAAAAAABKY/LmCwRq0SSTM/s1600/IC+4049+pinout+diagram.png



      I'll think about how braking could be applied for a motor. and let you know...if possible

      Delete
  29. Can i control the voltage by using simple pot for vehicle wiper motor with above circuit?
    Or i should use LM317 with 5k pot?

    ReplyDelete
    Replies
    1. you can use a simple pot and use it by connecting its center lead to pin5 of IC2, the other two terminals to positive and ground of the supply.

      Delete
  30. in ur diagram three is no IC2? should i make 2nd circuit?

    ReplyDelete
    Replies
    1. make the last circuit inside the magazine page.... also please note that here BC547 should be BC557, it's incorrectly printed

      Delete
  31. circuit inside the magazine page how to connect the N1 to N6 of ic 4049 pls explain?

    ReplyDelete
    Replies
    1. see the image of 4049 IC in its datasheet, you'll get the idea

      Delete
  32. ok circles are 2,4,6 & 10,12,15 others are 3,5,7 & 9,11,14 respectively.... am i correct sir?

    ReplyDelete
    Replies
    1. circles are the outputs, and the others are inputs, just compare the above shown magazine image with the 4049 IC image, you will get the matching info.

      Delete

Readers are requested not to include external links while commenting. For consulting a diagram, upload it on Google Drive and provide the link here.

Readers are advised to proceed with the construction of the presented circuits only after understanding the concepts from the core. Not adhering to this can lead to failures and frustrations.