You are on page 1of 2

#include <LiquidCrystal_I2C.

h>
LiquidCrystal_I2C lcd ( 0x27, 16 , 2 ) ;

float value=0;
float rev=0;
int rpm;
int oldtime=0;
int time;
int sec;
int CkEng=3;

void isr() //interrupt service routine


{
rev++;
}

void setup()
{
lcd.begin(16,2); //initialize LCD
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("FREKUENSI METER");
lcd.setCursor(0,1);
lcd.print(" Aira Variasi");

attachInterrupt(0,isr,RISING); //attaching the interrupt


pinMode(CkEng, OUTPUT);
digitalWrite(CkEng, HIGH); //indikator start on
delay(1000);
digitalWrite(CkEng, LOW);
delay(1000);
}
void loop()
{

delay(1000);

detachInterrupt(0); //detaches the interrupt


time=millis()-oldtime; //finds the time
rpm=(rev/time)*60000; //calculates rpm
oldtime=millis(); //saves the current time
rev=0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FREKUENSI METER");
lcd.setCursor(0,1);
lcd.print( rpm);
lcd.print(" RPM");
lcd.print(" ");
sec=rpm/60;
lcd.print( sec);
lcd.print("/s");
attachInterrupt(0,isr,RISING);
}

You might also like