0
\$\begingroup\$

I need a resistor that I can control with an MCU like an arduino/raspberry pi. Ideally with 1M max resistance. The resistor will handle an analog signal range of \$\pm\ 9v\$. I've considered using a digital potentiometer with a high range, like an AD5290, but zippering would be a concern in my application. I'd like a range from <1K \$\Omega\$ to \$1M\Omega\$ , continuously adjustable.

To my knowledge, the most common implementations of what I want would be to either use an LM13700 as a voltage controlled resistor, create one with an LED and an LDR, or to use FETs.

My question is: What would be the best solution here? I'd prefer the most linear response possible so the LED and LDR is a poor solution.

\$\endgroup\$
1
  • \$\begingroup\$ or you could do it the 'old fashioned' way that remote-controlled amplifiers used to do it - a real pot, with a MCU-controlled motor that turns the pot :) \$\endgroup\$
    – Techydude
    Feb 12 '16 at 3:55
1
\$\begingroup\$

0Ω - 1MΩ is a pretty tall order. The ±9V is also tough.

This might be an XY problem, so:

  • Do you really need 0Ω?
  • What resolution do you need? (And, perhaps, do you need a linear or log response).
  • How fast are you going to be changing this resistance?
  • Is this requirement for such a part avoidable by modifying your situation?

As you have found, digital pots have poor specs: The AD5241 is a 1Meg digipot, but only provides 256 steps, only operates over 0-5V, and has a wiper resistance of ~60Ω.

You could parallel two digipots of different ranges to get more steps, but the accuracy/linearity is so poor that this may introduce more issues. Also, for 0Ω, you'd have to build a bypass circuit, and you'd have to step the voltage down.

If you go with a FET (even a FET specifically designed for use as a VCR), you should expect operation in the ohmic regime starting at \$R_{DS(on)MIN} \simeq 20-200\Omega\$ with a range of maybe two octaves. You could try combining parts, but again, this is difficult, and increases your minimum resistance. However, FETs are more appropriate for high/bipolar input voltages.

Basically, if there's any way you can modify your circuit to use a VCA, OTA, or if you can tolerate huge steps (switchable resistor arrays), your life will be much easier.

If you can tolerate a bulky component, a stepper motor paired with a potentiometer may do a pretty decent job. But I'll warn you right now that dealing with motorized resistors can be a huge pain. Oh, and even a good potentiometer doesn't get near 0Ω.

\$\endgroup\$
6
  • \$\begingroup\$ I suppose a small minimum resistance is acceptable, I've edited my question. I'm trying to replace a potentiometer in a guitar pedal with a remotely controllable solution. The resolution should be great enough that I would be able to change the apparent taper in software (necessary as I would need to implement things like W-tapers). \$\endgroup\$ Feb 12 '16 at 3:58
  • \$\begingroup\$ What does the potentiometer control? And how fast does it need to be changed? \$\endgroup\$
    – uint128_t
    Feb 12 '16 at 4:03
  • \$\begingroup\$ The potentiometer may control many different things... signal gain, volume, and EQs mostly. If the change between two arbitrary values is continuous, then anything under about 500ms is acceptable. \$\endgroup\$ Feb 12 '16 at 4:09
  • \$\begingroup\$ With that in mind, I think a motorized potentiometer might be suitable. But keep in mind that a pot used to control gain and a pot used to control EQ have very different constraints. For gain, you don't need the 1Meg range nor the high voltage range. Your issue is that you are trying to find one component you can put everywhere, which complicates your constraints. \$\endgroup\$
    – uint128_t
    Feb 12 '16 at 4:18
  • \$\begingroup\$ can you elaborate on why 1M is not needed for gain? I frequently see gain pots that are 1M or 500K. \$\endgroup\$ Feb 12 '16 at 4:20

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.