0
\$\begingroup\$

I have a RC filter with a 1k Ohm resistor and 47uF capacitor between the PWM output of an arduino and the input of a motor controller. The problem is that when I connect the output of the RC filter to the controller, the voltage goes down significantly with respect to what is expected (3V instead of 3.8V). However when I disconnect it from the controller the output of the PWM gives the correct open voltage. I am suspecting this is due to the resistor in the RC which is too high but don't exactly understand why so? Thank you very much for your help!

\$\endgroup\$
  • 1
    \$\begingroup\$ What's the frequency of the PWM? (More importantly, if you do the PWM control of a motor, then why do you have the RC filter there in the first place?) \$\endgroup\$ – Nick Alexeev Oct 17 '16 at 15:48
  • 3
    \$\begingroup\$ You're possibly forming a voltage divider if the input of the controller is relatively low impedance. \$\endgroup\$ – Wesley Lee Oct 17 '16 at 15:49
  • 1
    \$\begingroup\$ Or use a buffer after the RC filter, or use a dac. But lowering the resistor would be a nice start, just to check if this is the real problem. \$\endgroup\$ – Wesley Lee Oct 17 '16 at 15:57
  • 1
    \$\begingroup\$ do you know how to calc. or measure impedance? R, Zc, Zl or know how manage EMI or scope with clean signals or any debugging skills? \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Oct 17 '16 at 16:04
  • 1
    \$\begingroup\$ 490Hz is too low \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Oct 17 '16 at 16:06
0
\$\begingroup\$

The voltage drop is caused a resistor in your controller which pulls the throttle input to ground, probably to ensure that the motor stays off if the throttle potentiometer becomes disconnected. This load forms a voltage divider with the source (Arduino output + filter), the equivalent circuit looking like this:-

schematic

simulate this circuit – Schematic created using CircuitLab

Using a few simple calculations we can estimate the value of the controller's pull-down resistor. Firstly, assuming your Arduino uses an AVR MCU running on 5V its output impedance should be about 30Ω, so the output resistance after the filter is ~1.03kΩ. The voltage drop under load is 3.8V-3V = 0.8V, so Ohm's Law tells us the current is 0.8V/1.03kΩ = 0.777mA, and the input resistance of the controller is 3.0V/0.777mA = 3.9kΩ.

You can reduce the voltage drop by lowering the value of your filter resistor (and increasing capacitance to maintain the same filtering effect) or adding an op amp to buffer the signal and provide a low impedance output. However this may not be necessary because your controller only needs 3.5V for full throttle, and you can compensate for the voltage drop by increasing the maximum PWM ratio (should get close to 4V at 100% PWM).

\$\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.