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 Apr 12 '13 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\$ – Chris Stratton Apr 12 '13 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 Apr 12 '13 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 Apr 12 '13 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\$ – Anindo Ghosh Apr 12 '13 at 13:57

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?

| improve this answer | |
  • \$\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 Apr 13 '13 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 Apr 15 '13 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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