Ü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 ZiffernDie 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.
Aufgabe
EinfachDie 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);
}
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
2Zeichen-LCD
Hallo auf dem LCDText mit setCursor platzierenLive-Zahlen auf dem LCDÜbrige Ziffern löschenEigene Zeichen zeichnenLauftextÜbe selbstständig: Arduino-Playground