LiquidCrystal Zeichenfolge dauerhaft anzeigen

Hallo an alle,

ich nutze zu Test -und Lernzwecken :grinning:
ein LCD-Display um die Messwerte eines Ultraschallsensors anzuzeigen.
Der Wert des Sensors wird alle 0.6s aktualisiert und wird damit scheinbar aus -und wieder angeschaltet.
Das Wort Entfernung, welches vor dem Wert steht “blinkt” dabei aber auch immer auf.

Weiß jemand, wie ich das verhindern kann?
Ins Setup schreiben bringt leider nichts, weil das Wort damit nach dem ersten Durchlauf weg ist.

Hier ist noch der Code:

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

int trigger=7;
int echo=6;
long dauer=0;
long entfernung=0; 
LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
  
  {
  lcd.init();
  lcd.backlight();
  Serial.begin (9600); 
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT); 
  }
  
  void loop()
  
  {
  digitalWrite(trigger, LOW); 
  delay(5); 
  digitalWrite(trigger, HIGH); 
  delay(10); 
  digitalWrite(trigger, LOW);
  dauer = pulseIn(echo, HIGH); 
  entfernung = (dauer/2) * 0.03432; 

if (entfernung >= 500 || entfernung <= 0)
    {
    lcd.print("Kein Messwert");
    Serial.println("Kein Messwert");
    }
else 
  {
    lcd.setCursor(0, 0);
    lcd.print("Entfernung: "); 
    lcd.setCursor(12, 0);
    lcd.print(entfernung);
    lcd.setCursor(15, 0);
    lcd.print("cm");
  }
  delay(600); 
  lcd.clear();
}

Ich würde mich über Hilfe sehr freuen.

Wenn du lcd.clear() nur eimalig im Setup ausführst und anschließend dein gewünschten Text im Setup schreibst, wird es nicht mehr flackern.
Das "clear" brauchst du nicht ständig widerholen, da du die einzelnen Zeilen ja überschreibst.

Nimm ne zweite Variable dazu: entFernungAlt.
Dann vergleichst du nach jeder Messung:

if(entFernung != entFernungAlt)
{
display.setCursor(x,y);
display.print(entFernung);
entfernungAlt=entFernung;
}

So wird die Entfernung nur dann neu geschrieben, wenn das auch notwendig ist, und das Ganze flackert weit weniger.
Das kann man sogar noch weiter verfeinern, indem man die einzelnen Stellen vergleicht.
Allerdings müsstest du den String "Entfernung" dann bereits im Setup() ausgeben, und immer dann wieder, wenn er durch "kein Messwert" überschrieben wurde.

Sowas mache ich in nem kleinen Unterprogramm, wo die Display-Maske geschrieben wird. Das kann man dann jederzeit aufrufen.