LCD Code (lcd.clear())

Guten Tag Community.

Ich bin noch Anfänger bezüglich Programmieren, sowie auch neu in der Materie Arduino.

Und zwar will ich über ein Drehwinkelgeber 4 Getränke auswählen. Dies habe ich bereits soweit geschafft. Nun ist das Problem, dass ich auf dem LCD nur so leicht die Schrift sehe bzw es verschindet zum Teil. Ich kann delay(1000); einsetzen nach dem "lcd.print();", aber das erkennt man auf dem Bildschirm. Kann mir da weiter helfen, leider finde ich nichts im Internet und sollte jemand was dazu finden bitte hier posten. Danke

  if (lastPos != newPos) 
  {
    lastPos = newPos;
  }
  if (newPos == 0)
  {                                      // Display wird gelöscht
    lcd.setCursor(0, 0);                              // Hier wird die Position des ersten Zeichens festgelegt. In diesem Fall bedeutet (0,0) das erste Zeichen in der ersten Zeile. 
    lcd.print("Cola");
    lcd.clear();
  }
  else
  if (newPos == 1)
  {
    lcd.setCursor(0, 0);
    lcd.print("Fanta");
    lcd.clear();
  }
  else
  if (newPos == 2)
  {
    lcd.setCursor(0, 0);
    lcd.print("Sprite");
    delay(10);
    lcd.clear();
  }
  else
  if (newPos == 3)
  {
    lcd.setCursor(0, 0);
    lcd.print("Whisky");
    lcd.clear();
  }
}
    lcd.print("Cola");

lcd.clear();

Wenn du die zwei Zeilen vertauscht, flackert es etwas, bleibt aber lesbar.

Wenn du lcd.clear() weglässt, stattdessen an die Stelle positionierst, wo das Wort erscheinen soll, flackert es nicht mehr.
Im Zweifelsfall noch ein paar Leerzeichen ausgeben, wenn auch mal längere Worte wieder durch "Cola " ersetzt werden sollen.

Und nur dann was ausgeben, wenn eine Änderung erkannt wurde.

(deleted)

michael_x:
Wenn du die zwei Zeilen vertauscht, flackert es etwas, bleibt aber lesbar.

Wenn du lcd.clear() weglässt, stattdessen an die Stelle positionierst, wo das Wort erscheinen soll, flackert es nicht mehr.
Im Zweifelsfall noch ein paar Leerzeichen ausgeben, wenn auch mal längere Worte wieder durch "Cola " ersetzt werden sollen.

Und nur dann was ausgeben, wenn eine Änderung erkannt wurde.

Hey Michael, danke für deine Antwort. Das hat mir nun weiter geholfen bezüglich Leerzeichen hinzufügen. Habe nun nach jedem Getränk ein Leerzeichen am Ende hinzugefügt, nun kann ich auch flüssig hin und her drehen. Mich würde dennoch interessieren, ob eine Art Abfrage möglich ist?
Die Methode mit lcd.clear über den Namen eintragen hat nicht geklappt.. flackert trotzdem

lcd.clear(); hab ich auch überall entfernt. Nun sieht es so aus

  if (newPos == 0)
  {   
    lcd.setCursor(0, 0); 
    lcd.print("Cola ");
    lcd.clear();
  }
  else
  if (newPos == 1)
  {
    lcd.setCursor(0, 0);
    lcd.print("Fanta ");
    lcd.clear();
  }

Peter-CAD-HST:
Moin gray23,

und mit der SWITCH/CASE Anweisung kannst du auf die geschachtelten IF/ELSE Anweisungen verzichten. So lassen ich auch schnell neue Getränke hinzufügen :slight_smile:

Viel Erfolg
Gruss Peter
und gesund bleiben

Danke dir Peter, werde ich mal später austesten! Mir ist nun wichtig ob es eine Art abfrage gibt damit der Bildschirm sauber erscheint ohne flackern.

gray23:
Danke dir Peter, werde ich mal später austesten! Mir ist nun wichtig ob es eine Art abfrage gibt damit der Bildschirm sauber erscheint ohne flackern.

Was verstehst du in diesem Zusammenhang "Abfrage" ?

Wenn du nur die Daten, die sich geändert haben, über die alten Daten drüber schreibst, dann flackert nix. Dabei unbedingt auf die Länge achten.