#include //LiquidCrystal(rs, enable, d4, d5, d6, d7) LiquidCrystal lcd(12, 11, 7, 8, 9, 10); volatile int rpmcount = 0; int rpm = 0; unsigned long lastmillis = 0; void setup(){ lcd.begin(16, 2); // intialise the LCD Serial.begin(9600); attachInterrupt(0, rpm_fan, FALLING);//interrupt cero (0) is on pin two(2). } void loop(){ if (millis() - lastmillis == 1000){ /*Uptade every one second, this will be equal to reading frecuency (Hz).*/ lcd.clear(); detachInterrupt(0); rpm = rpmcount * 60; /* lcd.setCursor(0, 0); lcd.print("RPM = "); lcd.print(rpm); lcd.setCursor(1,1); lcd.print("Hz = "); lcd.print(rpmcount); */ Serial.print("RPM =\t"); Serial.print(rpm); Serial.print("\t Hz=\t"); Serial.println(rpmcount); rpmcount = 0; lastmillis = millis(); attachInterrupt(0, rpm_fan, FALLING); } } void rpm_fan(){ rpmcount++; }