Interrupts cli() & sei()

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.