When modelling musical circuits - for prototyping or real-time simulation - a core aspect of the circuit is how it changes in response to the user twiddling its knobs. To make a complete model it is therefore necessary to get an accurate model of the potentiometer.
This project utilises an Arduino which drives a stepper motor to automatically rotate a potentiometer while its resistance is measured. A voltage controlled current source is used to drive a known current through the potentiometer while measuring the voltage across two of its terminals. The measured voltage can be divided by the current to find the resistance.
The demonstration video uses the analog input to the Arduino to measure the voltage ratio of a potentiometer, which while providing the underlying characteristic of the device, does not provide the resistance of the pot.
By driving a known current through the potentiometer, the voltage between two terminals can be measured to find the corresponding resistance. A simple VCCS can be made with an op-amp and a MOSFET, mocked up in LTspice:
This circuit also enables pulsing of the current to prevent heating of the potentiometer, further improving accuracy of the measurements.
Limitations lie in the range of resistances that can be measured. Following Ohm's law, as the total resistance of the potentiometer increases the current that must be driven through the device must drop in order to produce a voltage that can be measured within the limits of my DAQ. Driving smaller currents increases the circuit's sensitivity to noise and voltage offsets, requiring more thought on how to achieve good performance.
For a 10k pot this circuit appears to work pretty well though! Here is a rough measurement of a device:
The pot is clearly 10% off at the maximum resistance (which is within spec). At 50% rotation the device can be seen to be 15% of the total spec'd resistance. This parameter is often used to differentiate between different logarithmic laws, as can be seen on the Alpha website.