int pinMosfet= 3;
int pinEncoder=2;
long giri=0;  // corrente
long giri_dt=0;  // giri fatti nel dt
long dt_giri= 3000;  // intervallo per valutare giri fatti

void setup() {
  Serial.begin(9600);
  pinMode(pinEncoder,INPUT);  
  pinMode(pinMosfet,OUTPUT);  

  analogWrite(pinMosfet, 200);

  attachInterrupt(digitalPinToInterrupt(pinEncoder),contaGiri,RISING);
}


long t0=0;

void loop() {
  
  long dt=millis() - t0; 
  if (dt> dt_giri) {
    t0= millis(); 
    float rpm= (1000.0* giri_dt / dt_giri)*60;
    Serial.println(rpm); 
    giri_dt= 0;  // azzero giri fatti nel dt
   };


}

void contaGiri() { giri++; giri_dt++;}