Replacing Analog Potentiometer with Digital in PWM Motor Controller

I have a DC motor that I’m trying to drive with an Arduino. The motor uses a PWM controller for speed control and speed adjustment on the PWM controller is made using a 10K analog potentiometer. Link for Data sheet is at the bottom. Because the motor is relatively high power (18V/27A), I’m looking to keep the existing PWM controller and replace the 10K analog pot with a 10K digital pot.

I picked up a Microchip MCP4131 digital pot. First I set it up with the Arduino and measured the resistance between pins 5 and 6 (PA and Wiper) with a multimeter. Cycles from 0-10k ohms with no problems. I then wired it up so that pins 5, 6, and 7 (PA, Wiper, and PB, respectively) directly replaced the analog pot and connected to the A, Wiper, and B terminals on the PWM PCB. Tried to show in the attached Fritzing diagram.

When connected to the PWM, the digital pot will not change resistance and the motor won’t run. I suspect this is because I am exceeding the maximum voltage specs for the digital pot. On the PWM PCB, terminal A of the analog pot is at +9V, terminal B is +2V, and the max current through the pot is 1.1mA.

Is this fundamentally the right approach, and I just need a different digital pot? Or should I be taking a different approach to the problem? I’ve searched for higher voltage digital pots but haven’t been able to find anything that can take the current. Closest seemed to be the AD5290.

Many thanks for any advice.

Wiring layout in attached Motor Control pdf.
Data sheet for MCP4131: http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Components/General%20IC/22060b.pdf
Data sheet for PWM Controller: http://www.electronickits.com/kit/complete/motor/MX068-doc.pdf
Data sheet for AD5290: http://www.analog.com/static/imported-files/data_sheets/AD5290.pdf

Motor Control_bb.pdf (572 KB)

The pot is only used to derive a control voltage (look at the circuit diagram, the VR connected to the + input of the second op-amp) - so all you need to be able to do is generate an analog voltage, which can be done with Arduino PWM, through an RC low-pass filter, and then an opamp to boost the voltage to the supply range of the Motor Controller.

However a digital pot with a high enough voltage range would be ratiometric. Looking at the circuit it has a voltage regulator for the opamp part, without knowing the value of ZD1 its hard to say what this voltage is (except that it appears to be at least 9V).

Since the Arduino can generate PWM already a lot of that controller is redundant - you just need to be able to take a standard MOSFET driver chip like a MIC4422 and feed its output the gates of the MOSFETs in that controller, take its supply from the voltage regulator (emitter of TR1), and feed Arduino logic signal into the input of the MOSFET driver. How easy that is to do I don't know.

Thanks for the reply Mark.

The simplified controller suggestion looks good - it makes sense that much of the existing controller is redundant once the Arduino's involved. I'm getting into directly driving the MOSFETs now. I'll post when I've got results.

Again, thanks.

Hi Michael, I am going through the same situation. What did you finally do?