Brushed DC motor encoding - Page 1
Forum section: electronics / projects

author: jonwilhelmjr
author_rank: Regular Contributor
timestamp: July 09, 2014, 11:35:10 pm
content: Ok I am looking for opinions here.I have been doing some testing with acquiring voltage spikes from low voltage motors. Basically all you do is put a current shunt resistor between the motor and ground. Then filter frequencies below 100Hz and above 1kHz, and amplify the signal. Filter once more if so desired and use a comparator to produce a pulse, and to clean the signal more use a schmitt trigger. Finally use a microcontroller's interrupt to count the pulses and calculate the RPM of the motor shaft.I understand this is not as accurate as hall effect sensors and there is a better way. Does anyone believe this can be accurate? Is there anything I am obviously looking over? Would anyone like to run some tests of their own? I do not understand why I can not find a lot of info on this concept. Here is a linkhttp://www.ideadvance.com/sites/ideadvance.com/files/files/WhitePaper2.pdfwith some background info.Disclaimer, what I have described does not take in account change of direction or controlled speed with PWM or potentiometer. I could have added this to my description, but I left it out to simplify the explanation and testing. The amplitude of your waveform will change because the current shunt voltage drop and the frequency will also change because the speed of the motor shaft. Yes there is noise in this system but is negligible, I verified with FFT on my scope.

author: jonwilhelmjr
author_rank: Regular Contributor
timestamp: July 10, 2014, 12:31:42 am
content: Here is some more info,http://dat.etsit.upm.es/~pabloj/motor.pdf

author: Richard Crowley
author_rank: Super Contributor
timestamp: July 10, 2014, 12:44:42 am
content: Quote from: jonwilhelmjr on July 09, 2014, 11:35:10 pmWHY would it not be "as accurate"? Unless you applied some kind of noise-suppression on the motor so you could no longer detect the brush noise? And even if it dropped a few brush pulses here and there, you could average/integrate/flywheel the readings good enough for most applications I would think. You should know the theoretical maximum rate of change to allow you to numerically "qualify" and "normalize" the data within Real World bounds.I would trust it for casual speed-control. But not for position control. Especially for any application that is critical.

author: jonwilhelmjr
author_rank: Regular Contributor
timestamp: July 10, 2014, 01:03:33 am
content: Now that I think this through a little bit more. In most cases, encoding is done to provide positional feed back of the mechanical output. For where I said, "This may not be as accurate", the motor is most likely connected to a gearbox. If this is the case, the gearbox will have play possibly causing error. In addition to this, I think the brushes being dirty may be a factor, skipped pulses possibly due to PWM, or the motor shaft slipping and falls out of sync with the output device.Now I do have a robotic arm that I do not have access to the motor shaft and limited access to the output connect for position feedback. So I have been looking into trying this on the arm, but I have some complications. 1. The motors are cheap and very noisy. 2. I can only test the motor when disassembled, because the DOF limits. 3. The motors are difficult to test under no load.Suggestions!!!???