Reading DC Fan RPM (Revolutions per minute or Rotation per minute) is very easy than we think, yes because DC fan internally contains Hall Effect sensor, So we need to count the output pulse from the Hall Effect sensor that’s it.
Step 1: 3 Wire DC FAN
Lets start with Pinout of DC fan, 3 wire and 4 wire DC fan available in the market you can choose any one of them.
In this tutorial I have used three wire 12V DC fan (D60SH-12) from yateloon Electronics. This Fan internally contains a small Hall-Effect sensor to aware how fast the fan blades are rotating. Here we can use this sensor output and Interface with Arduino to serially print RPM value. It has Red wire for +Vcc, and black for Ground supply finally the Yellow gives signal output. Pull up resistor gives strength to the signal and may connected to external micro-controller.
Step 2: 4 Wire DC FAN
As like 3 wire DC fan this is also contains hall effect sensor and has 4 wires, Red for +Vcc, black for Gnd, Yellow/White for signal output from Hall sensor and Blue for PWM signal viz we can control speed of fan by varying PWM signal.
Step 3: Component Requirements
To make it possible you need Arduino Board (UNO, Genuino, mega, etc..,any one you have), Subject DC fan make sure it contains internal hall effect sensor, 9V Battery with clip to give separate bias to Fan, a 560Ω Resistor, and Connecting wires.
Step 4: Arduino DC Fan Hookup
Connect 560Ω Resistor in 3.3 V bias of Arduino board and connect Resistors another end to Fan signal pin (yellow wire) & Arduino Digital pin D2 together. Connect battery to DC Fan and bring common ground to Arduino board as shown in image. Connect the battery clip to the battery after uploading following sketch.
Step 5: Arduino Sketch
Check the fan speed (RPM) after uploading Sketch and hardware connection. Just open Serial Monitor in Arduino IDE and you can see the RPM reading. It may ± 1 % tolerance output than actual RPM.