void loop() {
//******* Medidor de Vazão ************
contaPulso = 0; //Zera a variável para contar os giros por segundos
sei(); //Habilita interrupção
delay (1000); //Aguarda 1 segundo
cli(); //Desabilita interrupção
This is the stupidest possible way to read interrupts from some device.
Leave interrupts on ALL the time. Get rid of the delay() call.
Once a second, or less often, if other stuff takes a long time, use millis() to see if it is time to make use of the number of pulses that the interrupt counted. If it is, only then should you disable interrupts, and then, only long enough to copy the count and then reset it.
Use the pulse count and the time during which the pulses occurred to determine pulses per second.