This project is developed from scratch as an attempt to measure the exact RPM (Rotations per Minute)value of various motors using a single IR sensor, an Arduino board and an essential key ingredient -a Laser Pointer(necessarily Red).
This project uses the fact that the IR sensor also reads the the low number of IR radiations given off by the red laser. However when a blue/green laser is used these IR radiations get very less and the analog read voltage drops down to approx. 0.
When a blade of the fan attached to the motor comes in the path of the laser beam it blocks up the pathway and the reading drops to 0. The fan blade keeps on spinning and its position keeps on changing with a constant supply of power. A constant change of path occurs. When the path becomes clear again, the laser pointer beam strikes the sensor again.
NEW SINGLE SHOT ALGORITHM BASED CODE,FOR FASTER AND MUCH MORE CHANGE ADAPTIVE MEASUREMENTS :-
The code for this project which is developed by me uses a newly developed algorithm for this project. The algorithm is indeed unique and is built to make measurements in less than 40 milliseconds and deliver accurate results. One very important feature of this program is that it uses a method which I call Single Shot Detection for Arduino. It calculates the RPM of the motor every time the fan blade creates an obstruction in the path of the laser beam. This is because the obstruction of the path of the laser beam marks a 1/n complete revolution for n number of blades in the fan. So, the program is very sensitive to even minute changes in the RPM ( upto 2 places of decimal) in every 1/n th revolution of the fan blade again where n is the number of blades of the fan. Hence this unique Single Shot Detection algorithm provides extremely accurate value of RPM and higher sensitivity to changes in measurements.
In the above displayed image of an output sample from the serial monitor in a test run, the rate of output screening can clearly be seen which is about 2 times a second. The RPM values are calculated upto two places of decimals each time.
Everyone viewing this must try this project once and share your valuable reviews. Do tell about your experiments and their outcomes related to this algorithm. Suggestions for new projects are welcomed in the comments section. If you like the project, do respect it.
Follow my profile by tapping on this link(https://create.arduino.cc/projecthub/YASH36) @YASH36 for some new project updates.
Until then, Stay Safe and enjoy Arduino!!