Best way to control multiple digital potentiometers?

Hey all,

I'm working on a project involving getting an arduino to control a tennis ball machine. There are three potentiometer inputs that I want the Arduino to provide to the machine. I looked it up and it seems the best way to do this is use digital potentiometers to 'fool' the circuit board with digital input instead of manual input.

The problem is, there are 2 different types of pots on the machine - one 100k dual pot, and 2 10k single pots. It doesn't look like there's a digital pot IC that supports two different max resistances, so it looks like I'll need at least two digital pot IC's. it seems like they are controlled either by serial or I2C, both of which I'm unfamiliar with. I looked into I2C a bit and it seems like you can daisy chain for multiple devices so long as they have different addresses - is I2C a good idea?
The alternative is serial which I don't know much about. How does serial work with multiple devices? Is the programming simple or complex?
Which communication format is easiest to work with? I'm a beginner with Arduino and circuits in general.

Thanks so much!

Just for the sake of lateral thinking, have you considered driving the existing analog pots mechanically? That ought to be very simple using ordinary hobby servos with a belt or flexible coupling to the potentiometer shaft.

If you're pursuing the electronic approach, I'd look to see whether any of these pots are just being used as voltage dividers between supply and ground rails to generate a variable DC voltage. If so, you have the option using using a DAC instead of a digital pot.

The dual pot sounds as if it may be a redundant input used to detect failures on a critical input, with the two tracks wired up in reverse so that they produce opposite signals so that no single hardware failure can cause a spurious input. In that case you could replace it with a pair of simple pots (or DAC outputs) and just control them together to produce the right combination of signals.

PeterH:
Just for the sake of lateral thinking, have you considered driving the existing analog pots mechanically? That ought to be very simple using ordinary hobby servos with a belt or flexible coupling to the potentiometer shaft.

If you’re pursuing the electronic approach, I’d look to see whether any of these pots are just being used as voltage dividers between supply and ground rails to generate a variable DC voltage. If so, you have the option using using a DAC instead of a digital pot.

The dual pot sounds as if it may be a redundant input used to detect failures on a critical input, with the two tracks wired up in reverse so that they produce opposite signals so that no single hardware failure can cause a spurious input. In that case you could replace it with a pair of simple pots (or DAC outputs) and just control them together to produce the right combination of signals.

Thanks for your response peter!

I’ve considered going the mechanical route, and I’ll have another look at that, but the design of the circuit boards and the placement of the knobs would make that a pain.

How would I go about telling if it’s being used as a voltage divider? I suspect it is the case since all three legs are connected to the circuit board, and the machine uses DC motors.

I don’t know much about DAC, how would I go about learning a bit about that, and how to use it in this context?

Sorry I don’t know that much!

Thanks again!

If it's being used as a voltage divider then the two end pins would be connected to different voltages (one of them is typically ground) and the wiper pin would be at a voltage which varied in proportion to the wiper position. In that scenario the thing it is connected to would simply be reading the voltage at the wiper pin, so you could get rid of the potentiometer and replace it with something that generated that voltage directly.

DAC stands for Digital to Analog Converter. Most Arduinos don't have an on-board DAC so you would need extra hardware to provide this capability. If you only need low current in the 0-5V range that extra hardware could be just a low pass filter to smooth out pulses from an I/O pin. Otherwise you'd need to add DAC hardware.

PeterH:
If it's being used as a voltage divider then the two end pins would be connected to different voltages (one of them is typically ground) and the wiper pin would be at a voltage which varied in proportion to the wiper position. In that scenario the thing it is connected to would simply be reading the voltage at the wiper pin, so you could get rid of the potentiometer and replace it with something that generated that voltage directly.

DAC stands for Digital to Analog Converter. Most Arduinos don't have an on-board DAC so you would need extra hardware to provide this capability. If you only need low current in the 0-5V range that extra hardware could be just a low pass filter to smooth out pulses from an I/O pin. Otherwise you'd need to add DAC hardware.

Hey, so I finally got around to looking up the low pass filter, made one successfully, and took a pot off the machine. However, I'm not sure where to go from here! Without the pot attached, the motor spins at approximately half speed. I've tried putting the output voltage and ground in all configurations of the three pot ports, but nothing works in that regard. Do I need a resistor somewhere or something?

Thanks so much!

Here's a picture of the circuit (bottom left pot removed). It seems to power the DC motors of the machine with MOSFET transistors.

Any help would be appreciated.

I've used digital pot IC's before... both SPI and i2c version. I prefer the i2c versions. I have a circuit that uses 4 digital pot chips on the same i2c bus. Two of them are dual-channel and 2 of them are quad-channel. I was using the quad-channels to control some thru-hole RGB led's I had. I used the dual-channels to control the analog inputs to a RC transmitter (replacing the joysticks that were there). I don't think you should do mechanical linkages... that will not be reliable in the long run. The pots will eventually fail and you'll be constantly adjusting and calibrating. Digital IC's are the way to go.