Affichage valeur débitmètre écran LCD I2C

Bonjour,

voila je suis débutant est un peu en galère...

je cherche à afficher la valeur donné par un débitmètre sur un écran LCD i2c. Sur le moniteur série mes valeurs s'affiche bien tandis que sur le LCD rien.
l’écran fonctionne et les librairies sont bonnes.

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
volatile int Debitmetre; 
int Calc;
int hallsensor = 3;    

LiquidCrystal_I2C lcd(0x27, 20, 4);

void rpm ()    

{
    Debitmetre++; 
}

void setup()

{
    //Serial.begin(9600);  
    lcd.init();
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("Debit C1:");
    pinMode(hallsensor, INPUT); 
    attachInterrupt(0, rpm, RISING);
    
   
}

void loop ()

{
   
    
    Debitmetre = 0;   
    sei();      
    delay (1000);   
    cli();      
    Calc = (Debitmetre * 0.7467 - 0.2);
    lcd.setCursor(10, 0);
    lcd.print(Calc);
    //Serial.print (Calc, DEC);
    //Serial.print (" L/hour\r\n"); 
         

}

Merci pour votre aide.

hello
j'ai joué avec ton code

par contre pour 10 impulsions du débit mètre, ta formule donne 7.26 litres..........c'est beaucoup ...non?

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
volatile int Debitmetre; 
float Calc;
int hallsensor = 3;    
unsigned long debut=0;
//LiquidCrystal_I2C lcd(0x26, 16, 2);
LiquidCrystal_I2C lcd(0x27, 20, 4);

void rpm ()    
{
    Debitmetre++; 
}

void setup()
{
    Serial.begin(115200);  
    //lcd.begin();
    lcd.init();
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("Debit C1:");
    pinMode(hallsensor, INPUT); 
    attachInterrupt(0, rpm, RISING);
}

void loop ()
{
    Debitmetre=0;
    debut= millis();   
    while((millis()-debut)<=1000){}
    Serial.print (Debitmetre, DEC);
    Serial.print ("____");
    Calc = (Debitmetre * 0.7467 - 0.2);
    lcd.setCursor(10, 0);
    lcd.print(Calc);
    Serial.print (Calc, DEC);
    Serial.print (" L/hour\r\n"); 
}

dfgh:
hello
j'ai joué avec ton code

par contre pour 10 impulsions du débit mètre, ta formule donne 7.26 litres..........c'est beaucoup ...non
...

Ce petit bout de code

debut= millis();   
    while((millis()-debut)<=1000){}

ce n’est pas mieux que delay(1000);ce n’est pas comme cela que l’on utilise millis() dans la loop() quand on ne veut pas faire de l’attente active, autant utiliser delay() tout simplement

Juste pour info - Dans cette expressionSerial.print (Debitmetre, DEC);DEC est inutile, c’est la valeur par défaut

En ne désactivant pas les interruptions, vous continuez à en avoir après avoir attendu 1 seconde, donc la formule n’est sans doute pas juste, surtout que des appels au LCD peuvent être assez longs; de plus un int étant sur 2 octets il se peut même qu’une interruption arrivant au mauvais moment change un des octets de Debitmetre pendant le calcul de la formule.

QuentinV:
je cherche à afficher la valeur donné par un débitmètre sur un écran LCD i2c. Sur le moniteur série mes valeurs s'affichent bien tandis que sur le LCD rien.
l’écran fonctionne et les librairies sont bonnes.

Si rien ne s'affiche, ça peut venir de l'adresse '0x27' qui n'est pas la bonne dans ta définition du LCD:

LiquidCrystal_I2C lcd(0x27, 20, 4);

Pour trouver l'adresse correcte, tu peux utiliser le sketch I2Cscanner

https://playground.arduino.cc/Main/I2cScanner
et en français ici : http://bateaux.trucs.free.fr/scanneur_i2c.html