Ajuda com arduino

Na minha opinião tens um erro ao inicializares a variável pulso dentro do loop.

Depois o teu cálculo não está a calcular vazão... está a calcular quantidade de água. Vazão é calculada dividindo a quantidade de água por uma unidade de tempo.

unsigned long pulso = 0; //Começa do 0 variável para contar os giros das pás internas
unsigned long tempoAnterior = 0; 

void loop (){
  
  if (millis() - tempoAnterior >= 60000) { //litros por minuto
     vazao = pulso * 0.00225; //converto os pulsos em L 
     tempoAnterior = millis();
     }
  
  if (vazao > 1)  //fecha o registro
  {
    digitalWrite(pinRegistro, HIGH);
    delay(500);
    digitalWrite(pinRegistro, LOW);
  }
  
  if (digitalRead(pinAgua) == HIGH) {
    digitalWrite(pinBomba, LOW);
  }
  else {
    digitalWrite(pinBomba, HIGH);
  }

}

Assim de minuto a minuto recebes a vazão de água em litros/minuto. Podes aumentar a frequência a que o valor é calculado, mas terás de corrigir o cálculo. Por exemplo, podes calcular o valor de 30 em 30 segundos, mas tens de multiplicar a variável vazao por 2 para continuares com litros por minuto.