volatile byte rpmcount = 0;
unsigned long rpm = 0;
unsigned long timeold = 0;
int interrupt = 0;
sen_analog=A0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
void setup()
{lcd.begin(16, 2);
Serial.begin(9600);
attachInterrupt(interrupt,rpmtrigger,FALLING);
}
void loop()
{
if (rpmcount >= 20)
{
rpm=((15000)/(millis()-timeold))*rpmcount;
timeold = millis();
int time = (millis()/1000);
int timedec = (millis()% 1000);
rpmcount = 0;
lcd.print("RPM = ");
lcd.print(rpm);
lcd.print(" Time = ");
lcd.print(time);
lcd.print(".");
lcd.print(timedec);
lcd.println();
}
}
void rpmtrigger()
{
rpmcount++;
}