Go Down

Topic: LCD-Display letzte Zeile löschen, falls Wert kleiner (Read 54 times) previous topic - next topic

waffi

Hallo Gemeinde

Ich probiere gerade die Servo-Position an einem LCD-Display anzuzeigen.

Code: [Select]
#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#include <Servo.h>
Servo myservo;
int pos = 0;

void setup() {
  myservo.attach(9);
  lcd.begin(16, 2);
  lcd.print("Position:");
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);
    lcd.setCursor(0, 1);
    lcd.print(pos);
    delay(15);

  }
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    lcd.setCursor(0, 1);
    lcd.print(pos);
    delay(15);
  }
}


Sobald es unter 100 ist zeigt es mir das letzte 0 noch an. Wie kann ich dieses Problem lösen? Bin mit LCD-Display noch blutiger Anfänger.

Vielen Dank :)

noiasca

if pos kleiner 100 print leerschritt
if pos kleiner 10 print leerschritt

oder du beschäftigst dich mit printf/sprintf
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

waffi


uwefed

Du mußt auch 2 Leerzeichen vorsehen falls die Zahl kleiner als 10 ist.
Mit beiden IFs die noiasca Dir gezeigt hat funktioniert das automatisch: ein Leerzeichen wenn kleiner 100 und 2 Leerzeichen wenn kleiner als 10.
Grüß Uwe

Go Up