I have a consumer equipment which has a knob and turning potentiometer to control the heating element. I have not taken apart the device yet to see the exact value of the pot but looking for some advices what is the best way to go with making this both arduino controlled and keeping the manual functionality intacted.

I come up with 2 ideas:

  1. Stepper motor control (this would obviously work but there is not much space inside the case and mechanical elements can break over time)

  2. Using some sort of FETs to emulate the potentiometer's resistance

If I want the arduino set values and the external pot values to be in synchron then the only way I see to do this is to completely take out the original pot from the circuit, hook up the arduino control there and then use (preferably the same) pot to do the same through the arduino so I can override the values from software when I like.


Also I would add an additional on/off switch to decide which value should be the relevant, the arduino's or the external pots. Obviously at reboots it would be always overwritten by what's the external pot giving to the Ardu at the beginning.

  • \$\begingroup\$ obviously at reboots you'd read a default safe level setting from EEPROM and use that, like my stereo does for volume control, just in case the pot has been set to maximum while the system has been switched off \$\endgroup\$
    – Neil_UK
    Jan 10, 2017 at 8:05
  • 2
    \$\begingroup\$ There are digital potentiometer ICs you can hook up directly to an arduino to achieve what you want. However, you have to study the device to get the resistance value, check whether the voltage values are workable directly from the IC, check if the pot does not have to handle the full load current (in which case it will probably be too much for the IC to handle), etc... So, I think taking apart the device would actually be the first thing to do to check what is the best solution. \$\endgroup\$
    – dim
    Jan 10, 2017 at 8:15
  • 1
    \$\begingroup\$ You should also have a look at the end equipment knob. Ifit might be potentiometer, or a simple rotary linear actuator, then the assumtions go void. What is the question? \$\endgroup\$
    – User323693
    Jan 10, 2017 at 8:16
  • \$\begingroup\$ The heating systems in Europe, which I have seen uses potentiometer to set and change different heating modes. Internal to the circuitry, there was a constant current generator which used to generate equivalent voltage, which then later was connected to ADC of the controller. If you can hack the circuit a little, it will be more easy. Else programmable pots as mentioned by dim could be explored. What is the range of resistance you measured from minimum to maximum? \$\endgroup\$
    – User323693
    Jan 10, 2017 at 8:40
  • \$\begingroup\$ Clear silkscreen shows Gnd Vcc Sig meaning an Analog Pot not a quadrature encoder, also shows Min and Max on each side but yet both Arrows in the same CW direction. ( OOPS) Remember this guys.. if a pot is numbered 1,2,3 the wiper goes from 1 to 3 in the CW direction. "easy as 123" @reaverx get a DMM \$\endgroup\$ Jan 10, 2017 at 12:55

3 Answers 3


How about using a continuous rotation encoder for manual control and using LEDs for indication purpose. Digikey has some of those rotary encoders:



These can be rotated continuously and will give you certain number of pulses per revolution. When manual control us desired, you can capture the rotation using arduino and light up certain number of LEDs to indicate the current level. Once full level has been achieved, rotation in that direction will have no effect. However once user starts rotating in opposite direction, you go ahead and turn off LEDs in sequence to give a feedback for level reduction. Once minimum level has been achieved, rotation in that direction will have no effect.

When automatic control is desired, you can simply set the level and light up that many LEDs to give level indication.


Be aware that most consumer gear is designed in a way to achieve the absolute minimum build cost. In the case of a heater product with a variable temperature control there is an extremely high possibility that the control is not a potentiometer at all. More likely it is a rotary thermostat control with a mechanical set of contacts that open and close relative to the set temperature. These contacts directly switch the AC power to the heater element. Such controls are rugged, known reliable from decades of usage and suitable to minimum component count in the heater.

If your heater has this type control it will not be immediately straightforward to just replace it with a simple analogue potentiometer. Replacement would require that you provide for switching the AC power to the heater on and off. A solid state relay (SSR) may be applicable to this usage. Also needed will be a temperature sensor to provide feedback to the MCU of your Arduino so that its software can implement closed loop temperature control and know when to turn the SSR on and off.

Also be aware the circuitry in the heater, whether the control be a rotary thermostat or an actual analogue potentiometer, is highly likely to be directly connected and referenced to the AC line power source with no isolation. Do use much care when playing around with such circuits to not get maimed or electrocuted. Anything you do should provide isolation for safety sake. In the case of using an SSR for example select one that has optical isolation between its control terminals and the AC switching terminals.


Under the assumption that you open the device and you find a simple potentiometer inside: The output from the SIG-pin will be a continuous voltage between GND and VCC. The device reading this output is most likely a high-impedance analog input.

A simple way to override the signal from the SIG-pin would be to hook up an analog output from the Arduino to the SIG-pin. When you want to use the knob normally, simply set the pin as an input-port, and when you want to override the knob, set the pin as an output-port and output a signal between GND and VCC from the analog pin.

There are a few gotchas you must be aware of:

  • You should have a resistor between the SIG-pin and the analog output-pin on the Arduino to avoid pulling too much current from the analog output-pin when the knob is at either extreme.
  • You should make sure that the maximal output from the Arduino does not exceed VCC as measured on the VCC pin on the knob. I would recommend that you probe VCC and GND on the knob inside your device and make sure that VCC is below 5 volt.
  • \$\begingroup\$ "The output from the SIG-pin will be a continuous voltage between GND and VCC." There are lots of case where this assumption could be wrong: if the pot is part of some feedback loop, for example. And in this case, you really want the controlled element to be a resistor, not a constant voltage. \$\endgroup\$
    – dim
    Jan 10, 2017 at 12:36
  • \$\begingroup\$ That is true. Under the assumption that the output from the potentiometer is connected to a microcontroller, there is a very high probability that a simple constant voltage should suffice, but even in that case it is not a given. \$\endgroup\$ Jan 10, 2017 at 12:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.