Problema monitor seriale

Ciao a tutti, mi accade che usando un sensore ad effetto Hall per la lettura di rpm, dopo un certo numero di valori rilevati (saranno all' incirca 50-70) il monitor seriale, mi da come lettura: "rpm=0", se lo chiudo e poi lo riapro, mi si ripresenta lo stesso problema, cosa dovrei fare?

Postare il codice perchè senza vederlo non possiamo dirti nulla.
E posta anche un disegno di come/cosa hai collegato.

@grigorot: mi raccomando, il codice, in conformità al REGOLAMENTO, punto 7, DEVE essere racchiuso tra i tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie :wink:

Guglielmo

 volatile int rpmcount; 
int sensorState = 0;
unsigned int rpm;
unsigned int timeold;

void rpm_fun()
{
      rpmcount++;
}

void setup() {
  Serial.begin(9600); 
  attachInterrupt(0, rpm_fun, FALLING); 
}

void loop(){
  if(rpmcount>=1) {
      rpm=(60000*rpmcount)/(4*(millis()-timeold)); //al posto di 4 mettere il valore del numero di magneti utilizzati
      timeold = millis();
      rpmcount = 0;
      
      Serial.print("RPM = ");
      Serial.println(rpm,DEC);
     }
    
}

il codice purtroppo non l'ho scritto io, spero che non sia un problema, non vorrei passare per un poco di buono :), (quell'immagine è stata presa dal video dimostrativo di funzionamento del sensore hall) il sensore è lo stesso che ho io è un 44E 402 :slight_smile:

unsigned long rpm;
unsigned long timeold;

devo fare solo questo accorgimento?

avanzo un ipotesi è possibile che il sensore non vada bene per l'utilizzo di cui ne faccio? non voglio dirottare la discussione su un argomento inappropriato per questa sezione, era solo una riflessione

la "unsigned int" e' di 16bit e arriva a 65535
La millis() che conta il tempo trascorso in millisecondi dall'ultimo reset, dopo 65 secondi sorpassa quel valore

ho capito, grazie mille :slight_smile: