Menu
CoddyTech

Übrige Ziffern löschen

Teil des Abschnitts Displays und Sensoren der Arduino-Journey von Coddy. Lektion 9 von 24.

Beim Überschreiben einer Zahl werden nur so viele Zeichen ersetzt, wie die neue Zahl hat. Gib 10 aus, gehe zurück, gib 9 aus, und auf dem Bildschirm steht 90: Die 9 hat die 1 überdeckt, und die 0 wurde nie berührt.

Es gibt zwei Lösungen. Die schnelle: Gib nach der Zahl ein paar Leerzeichen aus, damit sie alles abdecken, was eine längere Zahl hinterlassen hat:

lcd.setCursor(0, 1);
lcd.print(reading);
lcd.print("    ");   // überdeckt bis zu vier alte Ziffern

Die andere Lösung ist lcd.clear(), wodurch der ganze Bildschirm gelöscht und der Cursor oben links positioniert wird. Dabei wird auch alles andere gelöscht, was du ausgegeben hast. Du musst es also erneut ausgeben, und ein Bildschirm, der mehrmals pro Sekunde gelöscht wird, flackert. Bei einer einzelnen Zahl, die sich ändert, sind die Leerzeichen besser.

challenge icon

Aufgabe

Einfach

Die untere Zeile zeigt den Knob-Wert an, aber wenn du den Knob von 1023 herunterdrehst, bleiben alte Ziffern stehen. Behebe das:

  • gib nach dem Ausgeben des Werts Leerzeichen aus, um übrig gebliebene Ziffern abzudecken
  • lass Knob: in der oberen Zeile stehen

Drücke Run, drehe den Knob nach oben und unten und klicke dann auf Check.

Probier es selbst

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  lcd.print("Knob:");
}

void loop() {
  int reading = analogRead(A0);
  lcd.setCursor(0, 1);
  lcd.print(reading);
  // Eine kürzere Zahl lässt alte Ziffern stehen: Behebe das hier
  delay(100);
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Displays und Sensoren

Übe selbstständig: Arduino-Playground