#include <LiquidCrystal.h>
#define Backlight 10
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int Calc;
int NbTopsFan;
int hallsensor = 2;
typedef struct{
char fantype;
unsigned int fandiv;
}fanspec;
fanspec fanspace[3]={{0,1},{1,2},{2,8}};
char fan = 1;
void rpm ()
{
NbTopsFan++;
}
void setup()
{
lcd.begin(16, 2);
pinMode(Backlight, OUTPUT);
digitalWrite(Backlight, HIGH);
pinMode(hallsensor, INPUT);
attachInterrupt(0, rpm, RISING);
}
void loop ()
{
NbTopsFan = 0;
sei(); //Abilita interrupts
delay (1000);
cli(); //Disabilita interrupts
Calc = ((NbTopsFan * 60)/fanspace[fan].fandiv);
lcd.setCursor(0,0); // Colonna 0, Riga 0
lcd.print("Bettonte ");
lcd.setCursor (0,1); //Colonna 0, Riga 1
lcd.print ("RPM: ");
lcd.print (Calc);
lcd.print (" ");
}