PWM Motor Control
The basic principle will be familiar to many readers: VDC is a DC voltage (DC for direct current, not to be confused with DC for Duty Cycle ). At switch-on the positive opamp input Vi is always greater than zero, whereas the capacitor voltage Vc at the negative input is still zero. Opamp output Vo goes into saturation at its maximum output voltage (Vomax). The output voltage charges capacitor C1 via R1, until Vc becomes greater than Vi. We’ll call that state VtH. When this point is reached the output flips back to zero, whereupon the capacitor is discharged via R1 to the point VtL where Vc drops below Vi. Now Vo goes high again and the cycle repeats. The circuit is a combination of a saw-tooth generator and a Schmitt Trigger.
The great thing now is that you can drop these components into a couple of formulae, with which you can calculate exactly which values you need for a particular cycle. We can also approach this a bit more intuitively. Using any 741-type opamp that you choose, Vomax will go up to 1.5 V below the supply voltage. If you wish to go all the way up to the supply rail, then take an opamp with an FET output stage, such as the CA3130 or CA3140.
The higher VDC is, the higher Vi will be — and the higher the duty cycle. If Vi is always greater than Vc, then the duty cycle is 100% (in other words the full DC voltage). Vi is the determining variable in the whole affair. To make this more comprehensible, it may be better to think not in terms of resistance but of conductance. The higher the value of R4 (the lower the conductance of VDC through R4 to Vi), the less VDC contributes to Vi, thus the lower the duty cycle.
The lower R8 is, the more the conductance of Vi to ground (GND) and consequently the lower the duty cycle.
The lower R7 is, the greater the influence of Vomax on VtH and hence the greater the difference between VtH and VtL. But what matters in duty cycles is the sum of VtH and VtL and this does not change much with R7, meaning that R7 has less influence on the duty cycle than R4 and R8.
At this point you would choose R4, R7 and R8 to have a duty cycle that is always high enough to run the motor. But I wanted a duty cycle that was as low as possible and would automatically increase a little when the engine had to work harder.