Author Topic: Brushed DC motor encoding  (Read 2041 times)

0 Members and 1 Guest are viewing this topic.

Offline jonwilhelmjrTopic starter

  • Regular Contributor
  • *
  • Posts: 79
  • Country: 00
Brushed DC motor encoding
« on: July 09, 2014, 11:35:10 pm »
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 link http://www.ideadvance.com/sites/ideadvance.com/files/files/WhitePaper2.pdf with 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.
 

Offline jonwilhelmjrTopic starter

  • Regular Contributor
  • *
  • Posts: 79
  • Country: 00
Re: Brushed DC motor encoding
« Reply #1 on: July 10, 2014, 12:31:42 am »
 

Offline Richard Crowley

  • Super Contributor
  • ***
  • Posts: 4319
  • Country: us
  • KJ7YLK
Re: Brushed DC motor encoding
« Reply #2 on: July 10, 2014, 12:44:42 am »
I understand this is not as accurate as hall effect sensors and there is a better way.
WHY 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.
« Last Edit: July 10, 2014, 12:50:08 am by Richard Crowley »
 

Offline jonwilhelmjrTopic starter

  • Regular Contributor
  • *
  • Posts: 79
  • Country: 00
Re: Brushed DC motor encoding
« Reply #3 on: July 10, 2014, 01:03:33 am »
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!!!???
« Last Edit: July 10, 2014, 01:06:28 am by jonwilhelmjr »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf