I'm working on a project in which I have to control the speed of a DC motor using an analog PID(using op-amps). The input will be provided with a potentiometer. The issue is that I can't figure out how to provide the feedback(a voltage proportional to the speed) for this system without using a microcontroller, which I'm not allowed to use.

I was told it could be done by somehow coupling a potentiometer with the motor, but fail to understand how this would provide velocity feedback.

Is there any, not too difficult way to get velocity feedback of a motor without using a microcontroller?

  • \$\begingroup\$ Any device that provides information about rotational velocity is by definition a tachometer, so you're going to have to be more specific about that restriction. How about measuring back EMF or sensing commutation? \$\endgroup\$
    – Dave Tweed
    Commented Apr 12, 2013 at 13:03
  • 1
    \$\begingroup\$ A poteniometer can be used for position feedback. You could differentiate that for velocity. But it would be limited to the mechanical range of the potentiometer - usually less than a turn, though some devices go up to 10 or 15 turns. Most would use a generator type tachometer, or frequency to voltage convert encoder pulses or commutation events. \$\endgroup\$ Commented Apr 12, 2013 at 13:11
  • \$\begingroup\$ @DaveTweed : Sorry I seem to have misused the word. What I mean to say is, I can't use a tacho generator for this project because they're generally too expensive,unless there are more cost efficient options available. How would I go about using the back EMF? This is actually a project for my Control Systems course. \$\endgroup\$
    – Ammar
    Commented Apr 12, 2013 at 13:16
  • \$\begingroup\$ @ChrisStratton : It doesn't matter if the range is limited since it's only meant to be a proof of concept. So basically I could use a multi-turn pot and connect it to a differentiator op-amp? This would also give me an output voltage proportional to the velocity right? Thanks for the idea! \$\endgroup\$
    – Ammar
    Commented Apr 12, 2013 at 13:22
  • 1
    \$\begingroup\$ You could use a interruptor disk mounted on the motor shaft, thereby obtain rotation rate as pulses using an optosensor, then do a frequency-to-voltage on that using op-amps. That is how pre-digital era remotely readable anemometers used to work. Also, since this is going into a PID, linearity against RPM is not essential - so a simple resistor-capacitor based F to V would work. \$\endgroup\$ Commented Apr 12, 2013 at 13:57

1 Answer 1


Can you instead make a tacho using a slotted opto switch and a disc with perforations. Alternatively you could get some kind of "once per rev" signal from a cheap inductive probe and a small magnet on the shaft.

Once you have this pulse waveform coming back you need to compare its frequency with a frequency that is equivalent to your demand. You mention you have a potentiometer as the "demand" - this could be used in a circuit such as a Voltage-to-frequency converter.

In effect, your demand has been translated to a frequency and that frequency is what you expect to get from your tacho (described above) when it has settled at the correct speed. Using a simple Exclusive or gate or the type II phase comparator as used in a 4046 phased lock loop would work - are you allowed to use logic chips?

  • \$\begingroup\$ This is a great idea! I have a couple of questions though. Could I not do as Anindo Ghosh mentioned in a comment and use a frequency to voltage converter instead? Then I could invert the output voltage for negative feedback. On the other hand, if I use v to f conversion, I understand how the phase comparator would work but how would a XOR gate work? Logic chips are allowed and thank you for your help! \$\endgroup\$
    – Ammar
    Commented Apr 13, 2013 at 5:28
  • \$\begingroup\$ Well I don't think I'm going to get any more answers and I've decided to go with an optical encoder. I appreciate your help on the matter! \$\endgroup\$
    – Ammar
    Commented Apr 15, 2013 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.