Problema impresion en lcd de datos float

Hola!

¿Podrían ayudarme con mi código? Hay un error pero no logro verlo.

No hay forma de que me imprima una variable float. (caudalimetro) La pantalla/bliblioteca funciona, ya que el otro dato anterior (presión) si que lo imprime correctamente.

Tengo un sensor de presión y un caudalimetro. El valor de caudal, no hay forma, ni de que aparezca un simple texto. El programa nace de unir dos, uno que controlaba presión y otro que controla el caudalimetro. La parte del puerto serie, tampoco funciona correctament cuando junto los programas.

Disculpad si el error es muy simple, me estoy introduciendo y no domino de programación. Tengo el arduino uno. Adjunto mi código abajo:

Gracias! Un saludos

#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>
#include <Wire.h>

LiquidCrystal_I2C         lcd ( 0X27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //pins inters de la pantalla

// Parte del caudalimetre

volatile int NumPulsos; //variable para la cantidad de pulsos recibidos
int PinSensor = 2;    //Sensor conectado en el pin 2
float factor_conversion=6.6; //para convertir de frecuencia a caudal
float volumen=0;
long dt=0; //variación de tiempo por cada bucle
long t0=0; //millis() del bucle anterior

//---Función que se ejecuta en interrupción---------------
void ContarPulsos ()  
{ 
  NumPulsos++;  //incrementamos la variable de pulsos
} 

//---Función para obtener frecuencia de los pulsos--------
int ObtenerFrecuecia() 
{
  int frecuencia;
  NumPulsos = 0;   //Ponemos a 0 el número de pulsos
  interrupts();    //Habilitamos las interrupciones
  delay(1000);   //muestra de 1 segundo
  noInterrupts(); //Deshabilitamos  las interrupciones
  frecuencia=NumPulsos; //Hz(pulsos por segundo)
  return frecuencia;
}

void setup() {
  Serial.begin(9600);
  lcd.begin (20,4); // Iniciem el display, 20 caracters 4 columnes
  
 // caudalimetro

  pinMode(PinSensor, INPUT); 
  
  attachInterrupt(0,ContarPulsos,RISING);//(Interrupción 0(Pin2),función,Flanco de subida)
  Serial.println ("Envie 'r' para restablecer el volumen a 0 Litros"); 
  t0=millis();

 
}

void loop () {

// Pressión

  int lectura = analogRead(A3);
  
    int PRESSIO =map(lectura, 103, 920, 0, 50);
  

  
 lcd.setCursor(0,1); // Posiciona la primera letra al segmento 0 i linia 1
  lcd.print("PRESSIO REAL "); 
  lcd.print(PRESSIO);
  lcd.print("  Bar"); 

           
delay (200);

 // Caudalimetro

 
 
if (Serial.available()) {
    if(Serial.read()=='r')volumen=0;//restablecemos el volumen si recibimos 'r'
  }
  
  float frecuencia=ObtenerFrecuecia(); //obtenemos la frecuencia de los pulsos en Hz
  float caudal_L_m=frecuencia/factor_conversion; //calculamos el caudal en L/m
  dt=millis()-t0; //calculamos la variación de tiempo
  t0=millis();
  volumen=volumen+(caudal_L_m/60)*(dt/1000); // volumen(L)=caudal(L/s)*tiempo(s)

 

   //-----Enviamos por el puerto serie---------------
  Serial.print ("Caudal: "); 
  Serial.print (caudal_L_m,3); 
  Serial.print ("L/min\tVolumen: "); 
  Serial.print (volumen,3); 
  Serial.println (" L");


  lcd.setCursor(0,3); // Posiciona la primera lletra al segment 0 i linia 3
  lcd.print("CAUDAL "); 
  lcd.print(caudal_L_m);
  lcd.print("L/min");

 }

Esto es una tontería

#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>

De donde sacaste que debas usar todas esos includes?

Te basta con esto

#include <LiquidCrystal.h>
#include <Wire.h>

Lo del LCD no se ve por el mal so del objeto y de su inicialización.
Revisa los ejemplos de tu librería.

Que liberías usas?

Hola!

Los he borrado y he dejado los de abajo. He observado que estos #include's se cargan al seleccionar la librería "Liquid Crystal I2C".

Adjunto una imagen de los archivos de la librería. No sé como indicarte qué librería uso, no recuerdo donde la descargué.

https://forum.arduino.cc/index.php?action=dlattach;topic=640002.0;attach=327724

Como funciona por I2C, solo he dejado estos dos includes:

#include <LiquidCrystal_I2C.h>
#include <Wire.h>

Borrando lo otro, consigo que ahora funcione bien la ventana del Monitor serie.
Pero continua sin salir el texto que envio al lcd en la última parte del programa en la fila 3.(valores del caudalimetro).

Remarcar, que creo que debe ser algo del programa, ya que el dato que imprimo mas arriba, el valor de presión, sí que lo imprime en el lcd en la fila 1.

Gracias por vuestra ayuda.
Saludos