Subscribe to Arduino Academy and start learning today for FREE!

RPM into MPH? Building a Anemometer!

I’m building an anemometer to measure wind speed. I’m building the typical 3 cup style anemometer, and using a hall effect sensor (digital, non-latching) to trigger an arduino (or esp8266).

It’s a open collector unit (output pulls low when triggered with a magnet), and therefore uses a 10k ohm pull up resistor, or use

pinMode(inPin, INPUT_PULLUP);

val = digitalRead(inPin); // read the input pin

and watch for a LOW (FALLING when using interrupts –

Inside the unit, I want to pass a small magnet across the sensor. I could use 1 or more magnets, and adjust the code for the number of pulses (triggers) per revolution. Let’s assume 1 magnet, so one pulse per revolution.

The math looks like this:

Become the Maker you were born to be. Try Arduino Academy for FREE!

RPM = cycles per second (Hz) * 60 seconds per minute / # of magnets

(to count cycles per second or HZ –

FPM = Diameter (inches) / 12 * ? * RPM

FPH = FPM * 60

MPH = FPH / 5280

So 3″ / 12 * 3.14 * 100 RPM * 60  / 5280 = 7.14 MPH

RPM = Revolutions Per Minute
FPM = Feet Per Minute
FPH = Feet Per Hour
MPH = Miles Per Hour
? = 3.14 (pi)
Diameter = inches from center of shaft to center of cup * 2

More on this to come.

Become the Maker you were born to be. Try Arduino Academy for FREE!


Optical Tach

Hall Effect Tach

Ultrasonic speed and direction, no moving parts

Notify of
Inline Feedbacks
View all comments
Taylor Michaels
5 years ago

It's my understanding that there is some loss. In the old days, one person held the anemometer out the car window while the other person drove at different speeds. I've had several commercial anemometers and they have all had a maximum speed. Good luck.

John Frankforther
5 years ago

Steve Have you finished this project? What bearings are you using for the least amount of drag on the project? I have made a 4 blade anemometer and I am finding that the bearings I have available are stopping it from spinning in a very light breeze. Thanks

Steve Spence
5 years ago

I removed the reed switch and installed a hall effect sensor in this unit from a previous project –

John Frankforther
5 years ago

I went to Michael's today and bought 6 of those hand spinners for $1 each. Pulled the bearings out and tossed the rest away. Will use the bearings for the anemometer!!

Steve Spence
5 years ago

Great idea!

5 years ago

OK, I confess to a bit of numb brain. I'm having a problem with the formula:

FPM = Diameter (inches) / 12 * 3.14 * RPM

Is it

(((diameter / 12) * 3.14) * RPM )

Or am I misreading the association?

Steve Spence
5 years ago

DIA (in) / 12 * 3.14 * RPM * 60 / 5280 = MPH

Steve Spence
5 years ago

so yes, DIA (in) / 12 * 3.14 * RPM = FPM


Would love your thoughts, please comment.x