# Measure RPM with a discrete component?

I have a problem that I need to measure an RPM of a rotating axle with a single element (circuit) attached to it - i.e. I can't use a hall effect sensor, because I can't use a separate magnet - I can only use what's mounter on the axle. The axle will rotate only on one axis - but that could be X, Y or Z. So the solution should be modular in that regard. I'm looking to measure up to 150 RPM most, and I'm using an Arduino for the readings.

I was thinking of using an accelerometer, a gyro or a compass. Compass feels like it would fill the bill best, but I'm not sure it would work properly on every axis, not just Z?

What would be the best component and implementation strategy for a solution to such a problem?

Thanks for the "-1"s, here are the clarifications:

• A single element as in one part product - for hall effect we'll need two parts - the sensor and the magnet. So the whole end product should be a single element.
• An axle can rotate only on one axis, but it could be initially placed on different angles - so the same circuit should work for any kind of setup (any axis).
• The speed information will be collected on the rotating part.
• Huh? Lot of things make little sense. How is a circuit a "single element", and what restriction exactly are you placing on the design by that? How can a "axle" rotate on multiple axes? Is the speed information needed on the rotating part on the stationary part? Aug 26, 2013 at 11:58
• A model rocketry spin-rate sensor is a simple LDR, which relies on the fact that ambient light is nearly always nonuniform enough for this to work. Aug 26, 2013 at 12:16
• @OlinLathrop ok, edited. Aug 26, 2013 at 12:16
• This is still a poorly-specified question. What are the space, mass and power constraints? What are the accuracy and update rate requirements? You mention "non-clean" environment, so what exactly are the environmental requirements, such as temperature, dust and moisture tolerance? Aug 26, 2013 at 12:27
• @MeLight Could you perhaps re-state the problem by specifically putting down the actual problem, the operational and environmental constraints, and the key challenge(s)? As the question stands now, the traditional mouse with the little rotating sphere, sensed by two axes, with the rotation rate being measured using a non-contact infrared emitter / sensor pair, might conceivably meet your requirements - and that's not a clean environment. Aug 26, 2013 at 13:03

Gyroscopes are designed for this - measurement of angular velocity on a rotating body without needing a separate stationary component. I recommend a MEMS gyroscope. Several are available with analog or digital outputs (SPI or I²C). They are usually specified in degrees per second -- 150 RPM is 900°/second, which is high but still readily available. It sounds like a 1-axis gyro is all you require; nowadays 3-axis gyros seem to be somewhat more common; they would be fine too, since you could just ignore the other 2 axes.

Regarding the other options you were thinking about:

The downside of a compass is that it will likely only work well for vertical rotation. They can also have problems with nearby iron or motors. They are usually designed to measure angular position, not velocity. I doubt you could easily measure 150 RPM with a compass.

To measure angular velocity with an accelerometer, you would have to mount it on the shaft away from the center and measure the centripetal acceleration. This could work assuming the distance from the center is great enough and controlled enough to get the precision you require, but that may be hard if the axle is narrow. Any additional linear acceleration on the whole axle would need to be accounted for .

• Justin, thanks for the to-the-point and clear advice - you've addressed the questions I had, and actually enabled me to move on to the next phase of my project, which is why I came here in the first place. Aug 26, 2013 at 13:22

I'd go with an optical interrupter, either with a mechanical interruption or reflection based. Either will easily give you a pulse per revolution (or more!) which should give you a pretty good estimate of rpm if the speed is fast enough. Bonus: no mechanical connection to shaft. If you need better accuracy at low speed, or more than one or two estimates per revolution, I'd go with a quadrature encoder.

This is much simpler than MEMS gyro or accelerometer approaches, and you'll be up and running much faster.

Reflection based (Mouser):

interrupter (datasheetdirect)

• I suspect this doesn't satisfy the "must be a single part" requirement, since you need two separate parts: an encoder wheel on the axle and a sensor off it (or vice versa). Of course, it's kind of hard to tell what the OP actually means by that requirement, but I suspect he's looking for a way to measure the absolute rotation of the "axle" (which might not actually be an axle), rather than the relative rotation between the axle and some other object. Aug 26, 2013 at 16:22
• Only one part, though, is electronic. The other can be a piece of tinfoil! If he's looking for something other than speed, the accelerometer is probably the best option, though none of the solutions (other than encoder) are straightforward for that. Aug 26, 2013 at 16:33