Buenas:
hice lo que dijiste y si funcinoa a 0 RPM, luego le puse el tacómetro del ventilador activado y funciona de maravilla, es lo que quiero. Y sin usar la resistencia como en el esquema que pusieron en un vídeo en el tacómetro.
static int NbTopsFan; // contador de impulsos.
const int fandiv = 2; // dos pulsos por vuelta
const int hallsensor = 2; // pin 2, que está unido a interrupción 0.
void rpm () // se llamará cada vez que se pruduce la interrupción
{
NbTopsFan++;
}
void setup()
{
//pinMode(hallsensor, INPUT);
pinMode(hallsensor, INPUT_PULLUP);
Serial.begin(115200); // 115200
attachInterrupt(0, rpm, RISING);
}
void loop ()
{
NbTopsFan = 0;
sei();
delay (1000);
cli();
int Calc = ((NbTopsFan * 60)/fandiv);
Serial.print (Calc, DEC);
Serial.print (" rpm\r\n");
}
Donde pone delay(1000) quise poner millis(1000);
Me parece que es mejor y más preciso, a parte de no dejar esclavo Arduino durante ese tiempo. Si no es importante como creo, pues lo dejamos en Delay y me dejo de tonterías.
Los RPM se muestra en cada segundo, no en menos tiempo para al menos que se parezca en tiempo real, ya que si reduzjo los RPM, tarda un segundo en ver los nuevos datos.
¿Hay alguna manera de hacerlo más rápido la lectura de los RPM?
Como los coches, que no tardan cada segundo en mostrar cada revolución.
Muchas gracias por la ayuda a todos.