Potentiometers are the perfect tool when you want to change your circuit by turning a knob. Turns out, there are times when you want to adjust your circuit without manually turning a knob, and the DS1841 I2C Logarithmic Resistor from Maxim can do just that. It's a programmable resistor, similar to an I2C potentiometer like the the DS3502 I2C Potentiometer, so why another?
The big difference between the two is how the resistance changes in relation to changes made to the wiper. The DS3502's resistance has a linear relationship to the wiper's setting. Each time you change the wiper by a given amount, the resistance will change by the same amount. With the DS1841, the relationship between resistance and the wiper setting is logarithmic. This means that as the wiper setting changes, the amount of resistance will depend on where in the wiper's range the current setting is.
This graph shows the relationship between the wiper setting and the resulting resistance. At the start, the changes are relatively large, but as the values increase, the resulting change in resistance gets smaller and smaller.
Log potentiometers are used in audio applications for things like volume control because they better match the response of human ear to sound.
The DS1841's resistance ranges from 22kOhms to 3.7 kOhms and has 128 tap points. Even more interestingly, the DS1841 can be configured to adjust its resistance based on temperature with hysteresis to keep things from jumping around.
Additionally the temperature compensation can be adjusted by using the LUT (Look Up Table) built into the DS1841. This table allows you to specify the wiper setting for each of 70 temperature increments between -39 and 100 degrees C, plus one each for above or below that range. You can even manually set the wiper to one of the entries in the LUT.
Working with the DS1841 is easy. We've put it on a breakout PCB with the required support circuitry and SparkFun qwiic compatible STEMMA QT connectors to allow you to use it with other similarly equipped boards without needing to solder. This handy little helper can work with 3.3V or 5V micros, so it's ready to get to work with a range of development boards. To make things even easier we've gone and written Arduino and CircuitPython/Python 3 drivers to simplify interfacing with your new knob-replacing friend.