Society of Robots - Robot Forum

Electronics => Electronics => Topic started by: vipulan12 on August 01, 2013, 11:52:31 AM

Title: how to find the RPM of a DC motor without spec sheet
Post by: vipulan12 on August 01, 2013, 11:52:31 AM
i have these small motors that came from electronics of all kinds and i dont know how to find the RPM

is their an easy way to finding the rpm,is there a special too?

to solve my dilemma i am using my arduino to count the number of times the motor completes a rotation
however it seems to be very slow
it isnt detecting the complete rotations fast enough

my idea was to power the motor, the motor will be connected to an aluminum strip
for each rotation the aluminum strip will close and open a circuit connecting to my arduino
the arduino will serial print a 1 when is the circuit was closed(allowing current to flow) and a 0 when the circuit was open(no flow of current), this would be done in exactly one minute
the serial monitor would have groups of 1's (because of the baud rate)
so you would have to count the groups of 1s to count the number of rotations per minute
 the problem is however when the circuit is being closed and open really fast the arduino isn't picking up the time when the circuit is opened(disconnected)
and the monitor shows up with a bunch of 1s

is what i am doing making sense or am i just wasting my time?
if there is a easier way in find RPM please reply

would this process be better if i used a photoresistor?

thanks
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: jwatte on August 01, 2013, 02:54:59 PM
Even a pretty fast motor, like 10,000 rpm, would only do about 170 connections per second, which should be perfectly possible to track with an Arduino. Is it perhaps the case that your aluminum foil causes contact "bounce"?

That being said, reading the speed of a motor is a very common problem, and is typically done with either quadrature (relative) encoders, or absolute encoders, either optical or magnetic. You can buy encoders that you attach to your motor shaft or gearbox, and that will give you clean pulses to measure.

If you must build your own, I think a phototransistor and LED and a comparator or opamp will work pretty well. You should install a pin-change interrupt on the pin that the count signal comes in on, and have the interrupt routine count the number of ones or zeros.
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: vipulan12 on August 01, 2013, 03:22:39 PM
do you have any encoders in mind?
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: jwatte on August 01, 2013, 05:23:55 PM
I buy my motors with built-in encoders (like the Pololu gear motors) or as complete servos (like the Robotis servos.) I know that various hobby shops have encoders; encoders are also commonly sold by parts distributors like McMaster, Digi-Key or Mouser.

Twenty seconds on Google found this: http://www.robotshop.com/search/search.aspx?locale=en_us&keywords=encoder (http://www.robotshop.com/search/search.aspx?locale=en_us&keywords=encoder)
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: johnwarfin on August 02, 2013, 09:00:30 AM
why do things the hard way? an led and phototransistor (no op amp required) or, better still, hall effect and magnet. arduino has many tach and freq counter sketches to make this easy.
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: richborek on August 02, 2013, 07:35:00 PM
If you have a variable frequency strobe light you could use the frequency to determine the rotations. Cut a hole in a disk place it on the end of the motor and turn it on.  Then change the frequency until it stops convert the Hz frequency into minutes.

1 hertz = 60 revolution/minute

Cheers.
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: jwatte on August 02, 2013, 11:14:49 PM
why do things the hard way?

I think that a rotary encoder that you just attach to the shaft is about as easy as it's going to get, but your mileage may vary.

Btw: There appears to be two interpretations of the question.
1) How to read the RPM while a motor without built-in encoder is working?
2) How to read the RPM of a motor under no-load conditions once, for characterization?

I agree that a strobe light and spinning disk might be quite sufficient (although for 10,000 rpm motors, you need 200 Hz or higher for the strobe)
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: waltr on August 03, 2013, 05:43:58 PM
why do things the hard way? an led and phototransistor (no op amp required) or, better still, hall effect and magnet. arduino has many tach and freq counter sketches to make this easy.
Yep, this is the easiest method.
Use a thin cardboard disk attached to the motor shaft with a hole for the LED/phototransistor (opto-interrupter). Run the phototransistor output to your Adrinuo and count the number of pulses in one second or other period of time.

Check how I measured RPM in this thread:
http://www.societyofrobots.com/robotforum/index.php?topic=17008.0 (http://www.societyofrobots.com/robotforum/index.php?topic=17008.0)
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: johnwarfin on August 04, 2013, 06:48:29 AM
LED/phototransistor is not only easier but cheaper too. even easier (and cheaper) is two leds pointed at each other. note that an led not only emits light but can also act as light sensor.
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: vipulan12 on August 05, 2013, 08:56:08 PM
how exactly would it be setup?
is using a photoresistor and LED godd enough for the job?
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: newInRobotics on August 06, 2013, 12:43:11 AM
--> SCHEMATICS - INFRARED EMITTER DETECTOR (http://www.societyofrobots.com/schematics_infraredemitdet.shtml)

--> SENSORS - ROBOT ENCODER (SLOT, ROTARY, LINEAR) (http://www.societyofrobots.com/sensors_encoder.shtml)
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: vipulan12 on August 27, 2013, 02:55:05 PM
could this sensor also be used to measure rpm?
https://www.sparkfun.com/products/9299 (https://www.sparkfun.com/products/9299)

it's cheap but i wonder about it's accuracy
Title: Re: how to find the RPM of a DC motor without spec sheet
Post by: waltr on August 27, 2013, 06:16:43 PM
Yes, that is perfect and is the type of sensor I use. The ones I use were salvaged from old printers.

Quote
it's cheap but i wonder about it's accuracy
What would not be accurate?
When the light beam is interrupted, blocked, the output is high when unblocked the output is low.
It is up to you how you measure the time of the intervals between high and low outputs.

Now, unsure you properly bias the LED. It does need a series current limiting resistor.