2
\$\begingroup\$

I want to use an Arduino to control a motor I pulled from a treadmill. The treadmill came with an MC-60 controller. The treadmill used a potentiometer to control the motor speed. Here's a portion of a treadmill schematic I found that shows the potentiometer and the MC-60 controller:

Treadmill Speed Control

Many sources cite the potentiometer for the MC-60 board as being 5K Ohms, but I measured 10K Ohms on my treadmill's potentiometer. Looking at the schematic, it looks like the MC-60's potentiometer uses 12V. The Arduino pins supply 5V.

What's the appropriate circuit from the Arduino to the H, W and L pins on the MC-60? I want to use the Arduino to control the speed (through a digital potentiometer, I'm assuming).

Note: Consider me a novice on electrical engineering. I use the cut and paste method of circuit creation. :-) I'm a professional software engineer so I can handle the programming end pretty well.

\$\endgroup\$
  • \$\begingroup\$ Sounds like it's being used as a voltage divider. Maybe a PWM signal through a half-bridge to bring it to 12V would work. \$\endgroup\$ – Ignacio Vazquez-Abrams Nov 17 '14 at 20:33
  • \$\begingroup\$ Do you have 12 VDC available somewhere? \$\endgroup\$ – EM Fields Nov 18 '14 at 3:27
  • \$\begingroup\$ After looking at the answers so far, I had an epiphany that will probably clarify how much of a novice I am. For some reason, I was thinking of having to provide the 12V to the H and L pins pins on the MC-60. But these are a 12V source for the potentiometer. Duh! That should answer EM Fields question. Or am I missing something? \$\endgroup\$ – freixas Nov 18 '14 at 3:34
  • \$\begingroup\$ I think I need to be more precise in asking my question. I was thinking of using an MCP41010 digital potentiometer. When I read the datasheet for this chip, I see that Vdd is 2.7V to 5.5V. I can connect this chip to the Arduino using the I2C interface. The chip has pins labeled PA0, PB0 and PW0. These match the H, L and W pins on the MC-60, respectively. Nowhere can I find the voltage limit for PA0, PB0 or PW0. I'm guessing it is 5V, but for all I know, PA0 could receive 12V. If not, is there an equivalent part that could or some way to adapt the MCP41010 to the 12V environment? \$\endgroup\$ – freixas Nov 18 '14 at 4:13
  • \$\begingroup\$ @freixas, the motor controller is not isolated from the mains. If you connect it directly to an Arduino, you can kill someone. \$\endgroup\$ – markrages Nov 18 '14 at 7:46
2
\$\begingroup\$

Looking at the MC-60 schematics online, it looks like the potentiometer just generates a DC voltage. But the most important thing is that the potentiometer is not isolated from the mains power.

Edit: Here is the schematic (right click, "view image" to see a readable version). enter image description here

Notice there is no isolation transformer between AC1 and AC2 and the rest of the circuit. A 110 volt mains line swings from +/- 160 V peak. So suppose AC1 is 160 volts below ground. Now, because of D1, the circuit ground is 159 V below true earth ground. Ditto for D2 and AC2 on the other half-cycle.

Also notice that the circuit ground is connected to one pin of the potentiometer. IF you connect that groudn to your arduino ground, now your arduino is 159 volts below actual ground. Touching the arduino, or something grounded with the arduino (like the computer on the other end of the USB cable) will be very dangerous.

So you want an isolated way to connect the Arduino to generate a 0-12 V signal.

Here's one way to do so, if you can make an audio frequency PWM signal on the Arduino:

enter image description here

\$\endgroup\$
  • \$\begingroup\$ Thanks for taking the time to explain the dangers involved. I am a novice and I hope I can impose on you a bit more. The MC-60 is powered by a 120V AC power supply. I thought the pot was connected to a 12V DC supply. You note that there is a common ground for the 120V AC and the 12V DC supplies. Did I interpret that properly? So you are saying that even though there is only a 12V differential on the pot, that those 12V are fluctuating wildly relative to the Arduino ground? \$\endgroup\$ – freixas Nov 19 '14 at 15:40
  • \$\begingroup\$ Another question: The AD9250 chips use dual power supplies. Would that imply that there is some sort of internal isolation of the two? link \$\endgroup\$ – freixas Nov 19 '14 at 15:42
  • \$\begingroup\$ yes, the MC-60 ground (and +12 V) is connected directly to the power line. The AD9250 is not isolated. (It would be the datasheet headline if so.) The two supplies are so the designer doesn't have to shift the logic levels up to the higher analog voltage. \$\endgroup\$ – markrages Nov 19 '14 at 16:51
  • \$\begingroup\$ Thanks, Mark. So, is the reason people don't get fried when changing the treadmill speed because the analog potentiometer is heavily shielded or something like that? I have been using this potentiometer to operate the motor while I work on building an Arduino system. The pot (and its wires) are just sitting in the open. I have been careful not to touch the MC-60 (also in the open), but didn't think I needed to worry about the pot. I should be able to see the dangerous voltages using a multimeter, right? \$\endgroup\$ – freixas Nov 19 '14 at 19:48
  • \$\begingroup\$ @freixas I'm sure the body of the potentiometer (the part you might touch) is properly grounded to earth ground, such as the third-prong ground for American plugs. The three potentiometer terminals are not connected to the potentiometer body or shaft. \$\endgroup\$ – markrages Nov 20 '14 at 4:09
1
\$\begingroup\$

Use an N-mosfet and drive it's gate with PWM from Arduino. Don't forget to add a resistor and pull-down on the line from Arduino.

schematic

simulate this circuit – Schematic created using CircuitLab

In case the motor controller doesn't react properly to PWM instead of flat voltage from the potentiometer, an LC filter could help.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.