Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Speed Measurement in rpm

Status
Not open for further replies.

Anantha Krishna

Member level 1
Joined
Feb 10, 2011
Messages
41
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Activity points
1,642
Hi all,

I am using Infrared reflector type Optical sensor to measure speed of the motor.[i.e a radium sticker on the shaft that reflects the infrared beam, because of which I get a pulse for every one rotation].
The basic idea is to measure no. of pulses per second, then multiply with 60 to get the actual speed in rpm. The problem I am facing, is that the rpm changes in terms of 60[effectively the resolution becomes 60 rpm[minimum speed that I can measure], since we are using a scaling factor of 60]. I want a resolution of 1 rpm, with an update rate of 1 sec or less.

Can anyone suggest a logic using which I can achieve 1 rpm resolution with an update rate of 1s or lesser.


Thank you.
 

In my view you can run the timer and capture the pulse time and then you can calibrate the pulse time with your timer ticks .....with this you can get any resoution that you want......

Good Luck
 

Hi,

I didn't understand what you are trying to tell. Can you please elaborate it?

Thank you.
 

Ok.....In your case you will get the pulse from your optical sensor....I am trying to tell you measure the time of this pulse using timer....Let se you get the Pulse of 0.2 sec in 1 rps resolution and you start the timer there with say 10 milisec resolution ( 0.01 sec ) so you will get approximatly 20 pulse.....now you can calibarate 20 pulse counted as 1 rps and as your timer is running with constant reference time even if you vary the speed of your motor let say to 0.5 rpm you will get some thing like 40 counts by the timer for 0.4sec pulse time or if you incresed the speed to 2 rps you will get some thing like 10 counts from timer counter.....

I hope this will help you....

Good Luck
 

Hi,

I am sorry, but I am still unable to understand what you are trying to tell. Can you give the above logic in the form of an algorithm?

Thank you.
 

What he means is:
Use a separate oscillator that produces say 1000 pulses per second i.e. one pulse per millisecond. Now use a counter to count the number of pulses from that oscillator during one revolution of the motor. The sensor you have is used to start and stop the counter.

Example:
If you count 200 pulses during one revolution, that means the motor is turning at one revolution per 200mS, or 5 revs per second.
 

Measure the PERIOD rather than the frequency is the solution as godfreyl states.

Set a timer up to count at a fixed interval, say 1mS and use the output of your sensor to trigger the operation to read it. As soon as you have the count, reset it to zero so it starts over again. The number you read is the time it took for one revolution which you can then easily convert to RPM. The frequency is 1/Period which you can scale to RPM.

Brian.
 

Hi,

Thank you all. This logic working fine. Thank you once again.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top