1
\$\begingroup\$

I want to display degrees in a seven segment display when rotate multi turn potentiometers.After rotating one round it should be reset to 0 degree.I can use A to D converter ICs.But how I give voltage signal to it when potentiometer rotates after one round.

\$\endgroup\$
1
  • \$\begingroup\$ For an application this slow, the ADCs on most microcontrollers will be adequate. The absolute accuracy may be lackign, but you're not likely to get more than 10 bits of linearity out of your potentiometer, unless you use a very pricey one, or use a stereo pot and average the two signals. \$\endgroup\$ Commented Feb 16, 2011 at 13:43

3 Answers 3

2
\$\begingroup\$

First of all, it's kinda bad idea - potentiometers have noise while in movement, and this will distract your readings. Proper solution is to use encoder - they already have digital output and way way more reliable.

For multiturn potentiometers you just have to calibrate them: rotate by 90' write down ADC reading, then again and again until you reach the limit. Then you do interpolation to get reading between your calibration marks. In order to reset to 0 - you just add %360 in your code (so that calculated value would 'wrap' after 360').

\$\endgroup\$
1
\$\begingroup\$

You haven't told us what type of potentiometer you're using or what you are using to drive the display, so I'll assume that you're using a linear potentiometer and a microcontroller to drive the display.

I that is so, you could measure the voltage difference for one turn of the potentiometer and use the microcontroller to remove full turns. For linear potentiometer, it's going to be easy. Just measure how big voltage difference is for one turn and then do a module of that.

In C that would be something live Voltage= Input_Voltage % Turn_Voltage; and the just feed the Voltage into the routine which calculates number of degrees.

If the potentiometer is logarithmic, you'll have to record its voltage over whole range of motion and then make a function which will be used by the microcontroller to see where the dial is. Some logarithmic potentiometers have actually two (or more) different linear elements inside, so you'll need to get a graph of voltage and number of turns.

If you aren't using a microcontroller, you can do this using discrete components too, but it's going to be more complicated. Also, I haven't done something like that for quite a while, so I can't give you any advice there.

\$\endgroup\$
1
\$\begingroup\$

It would be helpful to know more about the background of your project. The fact that you want the display to reset to 0 after a full rotation is not an issue, and implementation is easy. However, this implies that you expect the potentiometer to rotate more than one full rotation. But how many full rotations do you expect from the user? 5? 10? infinite?

The issue is that you'd basically need a 1:1 ratio from input rotations (from the knob) to output rotations (connected to the pot) on a multi-turn pot, but this is going to limit your angle resolution. If you want 5 turns, then you need to buy a 5 turn pot, and the entire resistance over the 5 turns "shares" the ADC range. In other words, for every N turns, you reduce your angle resolution by 1/N. It would be disappointing to fiddle with a knob and only see something like 15 degree increments. Of course this is also a function of your ADC resolution.

If you need high resolution and you have a low resolution ADC, then you'd probably want to "gear down" the knob. In other words, one rotation of the knob = N rotations of the pot. This way, the one rotation of the knob gets the full ADC range. But then you wouldn't get multiple turns of the knob.

If you need infinite rotations, then you need to put in a rotary incremental encoder. Something like that from an old mouse could work, and then you'd similarly gear the system down. Then implement a really simple lookup table in the microcontroller to keep track of where you are. Of course, this means you'll also need to use an input to set 0 degrees.

\$\endgroup\$

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.