Conteggio litri al minuto per contalitri digitale

Oltre alla millis() dovrai vedere come funzionano gli interrupt, altrimenti perdi impulsi.

Ti servirà usare il pin 2, quindi devi spostare i pin dell'LCD. Esempio

LiquidCrystal lcd(12, 11, 6, 5, 4, 3);

poi includi nel setup

attachInterrupt(0, impulso, RISING);

vedi qui --> attachInterrupt() - Arduino Reference
e nelle variabili metti la tua cont come

volatile unsigned long cont = 0;
volatile stato = 0;

non serve che sia float, gli impulsi sono interi e discreti.

Poi devi crearti una funzione impulso() che aumenta il conteggio

void impulso(){
cont++;
stato = 1;
}

dove all'interno aumenti gli impulsi totali e cambi lo stato del LED.
Ora il tuo contatore è indipendente dalle operazioni di scrittura su seriale e su LCD e non perde un colpo (+ o -).

Fatto ciò devi rivedere il codice del loop per calcolare i litri istantanei e il conteggio totale.

void loop() {
  reset=digitalRead(9);    // assegnazione pin tasto reset
  if (reset==1){           // arrivo impulso reset
    cont=0;                // reset contalitri
    lcd.clear();           // reset lcd
  }
  
  if(stato==1) {
     digitalWrite (8,HIGH); // accensione led esterno      
     stato=0;
  }
  else {
     digitalWrite (8,LOW);  // spegnimento led esterno
  }
  
  visual = (float)cont/270.0;         // conversione impulsi in litri
  lcd.setCursor(0, 0);     // posizionamento cursore display
  lcd.print("Lt. Tot: ");  // scritta
  lcd.print(visual,1);       // visualizzazione valore litri
  lcd.setCursor(0, 1);     // posizionamento cursore display
  lcd.print("Lt. Min: ");  // scritta
  lcd.print(litrimin,1);     // visualizzazione lt. ora ??????
  Serial.println(cont);    // visualizzazione impulsi su serial monitor
}