Arduino Servo Project

Hi:

I would like to run four servos, DSM44, with an Arduino Uno. I would like to monitor current to find servos that become jammed. I have four current sensors, Pololu #1185, ASC714 to use for this. Can I connect the current sensors to the servo positive and make this work? I just want to drive the servos 90 degrees and if any servo exeeds max current, turn on an LED and stop the one locked up and return the others to 0 degrees. Power comes from a 4.8 V NiMH battery pack.

Thank you.

Bela

This sensor says it generates an output signal of 185mV/Amp. “Standard” servos generally run a couple hundred mA, more when stalled, go with 500mA when it’s stalled for arguments sake. That’ll be a signal of about 90mV from your zero point. Taking an MCU with a 10bit A/D with a resolution of ~4.88mV, that’ll give you an ADC count of about 18-19 or so. Combine that with the electrical noise that the servo will invariably generate on the positive rails, it’ll be tough to distinguish noise from actual current draw, not impossible, but tough.

Then again, when the servo is sitting there and not stalled, current draw will be a heckuva lot lower, so maybe, if you ignore the current draw numbers while the servo is moving and assume in your program that after you give the servo a moving command, sit there and wait about 100ms or so, then take a current measurement, you’ll be able to tell the difference between stopped/not-stalled and stopped/stalled.

In addition the skimask’s analysis, I would add an op-amp, non-inverting, with a gain of about 5x plus a low pass filter (or integration cap on the feed-back to filter noise). Then 1Amp of current is almost 5V (4.625V) so 1/2 Amp of current would be 946 ADC counts (with a 10bit ADC).

This may be needed if without gain and filtering is not reliably detecting a stalled servo.