Introduction: Digital Tachometer With Arduino for Measuring RPM

About: hIOTron is an IoT Based company that offers IoT Platforms, IoT Solutions, IoT Training.

The tachometer is a device utilized for measuring the number of revolutions of an object in a specific interval of time.

Supplies

Hardware Components

Arduino Uno

LCD 16 X 2

Tact Switch

IR Sensor Module

Connecting Wires

Software

Arduino IDE

Step 1: About Project

Tachometer:

The tachometer is used to measure an RPM counter which counts the number of rotations per minute. The tachometer is divided into two types one mechanical and another one is digital. Here in this project, we are going to design an IR sensor module to recognize objects for count rotation of any rotating body.

IR Sensor Module: An IR sensor is an electronic instrument that is utilized to genuine certain features of its surroundings by either emitting and/or detecting infrared radiation. Infrared sensors are also able to measure the heat being released by an object and detecting motion.

IR transmits IR rays that return back to the IR receiver and then IR Module creates an output or pulse which is recognized by the Arduino controller when we press the start button. It counts constantly for 5 seconds. Depends on the intensity of the reception by the IR receiver, the output of the sensor is determined.

Working Mechanism: In this circuit, the IR sensor module is interfaced with Arduino to estimate fan rotation speed in RPM. The calculation is done as follows. After 5 seconds Arduino measures RPM for a minute using the given formula.

RPM= Count x 12 for single object rotating body.

But here we describe this project using a fan which was rated 9V/100mA.

So the formula will be: RPM=count x 12 / objects Where object = number of the blade in a fan.

IoT Course will help to build a Customized IoT Solutions.

Step 2: Run a Code

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

#define sensor 9

#define start 12

int delay1()

{

//unsigned int long k;

int i,j;

unsigned int count=0;

for(i=0;i<1000;i++)

{

for(j=0;j<1000;j++)

{

if(digitalRead(sensor))

{

count++;

while(digitalRead(sensor));

}

}

}

return count;

}

void setup()

{

pinMode(sensor, INPUT);

pinMode(start, INPUT);

pinMode(2, OUTPUT);

lcd.begin(16, 2);

lcd.print(" Tachometer");

delay(2000);

digitalWrite(start, HIGH);

}

void loop()

{

unsigned int time=0,

RPM=0;

lcd.clear();

lcd.print(" Please Press ");

lcd.setCursor(0,1);

lcd.print("Button to Start ");

while(digitalRead(start));

lcd.clear();

lcd.print("Reading RPM.....");

time=delay1();

lcd.clear();

lcd.print("Please Wait.....");

RPM=(time*12)/3;

delay(2000);

lcd.clear();

lcd.print("RPM=");

lcd.print(RPM);

delay(5000);

}