Denkanstoss TFT Temperaturanzeige

Hallo, ich bitte um einen Denkanstoss zur Aktualisierung einer Temperturanzeige mit
einem 1.8" TFT ST7735.

Die Nachkommstelle ist auf 1 begrenzt, aber sobald der Wert negativ wird oder von 1 auf 2stellig positiv wechselt bleiben Werte übrig - diese möchte ich löschen.

  tft.drawRect(3, 102, 122, 55, ST7735_BLACK);
  tft.setTextColor(ST7735_BLACK,ST7735_WHITE);
  tft.setCursor(18, 110);   
  tft.print(" Temp: ");
  tft.setCursor(20, 135);  
  tft.print(thermo.temperature(RNOMINAL, RREF),1);
  tft.setTextSize(1);
  tft.setCursor(84, 135);   
  tft.print(" o ");
  tft.setTextSize(2);
  tft.setCursor(100, 135); 
  tft.print("C");

Es gibt viele Bibliotheken, welche verwendest Du?

Manche kennen Fonts mit Gradzeichen und haben gute Möglichkeiten der Zahlenaktualisierung. Das hängt auch von Deinem µC ab, welchen verwendest Du?

Wirf mal einen Blick auf das Thema Sonderzeichen & Symbole auf ein SPI Display Zeichnen mit ESP32.

Probiere mal

  tft.print(thermo.temperature(RNOMINAL, RREF),1);
  tft.print("  ");
  tft.setTextSize(1);

Einfacher Tipp, der eigentlich immer funktioniert.
Den alten Wert merken, wenn neuer Wert kommt, die Anzeige mit altem Wert in schwarz (Farbe des Hintergrunds) überschreiben. Dann den neuen Wert in Textfarbe reinsetzen.

Oh Mann, deswegen Denkanstoss - danke jremington - es fuppt

ICH würde immer echtsbündig schreiben.

Ansatz: (Bitte nachrechnen - ich mach Schluß für heute)

tft.setCursor(20, 135);
float t = thermo.temperature(RNOMINAL, RREF);
byte b=0;
if (t < -100) b++;
if (t < 100 || t < -10) b++;
if (t < 10 || t < 0) b++;
for (byte c = 0, c<b, b++)
tft.print(' ');
tft.print(t, 1);
tft.setTextSize(1);
tft.setCursor(84, 135);
tft.print(" o ");
tft.setTextSize(2);
tft.setCursor(100, 135);
tft.print("C");

Wen man die TFT_St7735 vom Bodmer nimmt dann gibt's keine Zauberei mit der Anzeige.
Sind auch Beispiele dabei, notfalls Fragen

"Die Bibliothek enthält proportionale Schriftarten. Zur Kompilierzeit können verschiedene Größen aktiviert/deaktiviert werden, um die Nutzung des FLASH-Speichers zu optimieren. Die Bibliothek wurde mit UNO, Mega (ATmega328- oder ATmega2560-Prozessor) und den Leonardo-kompatiblen Boards (ATmega32u4-Prozessor) getestet.
Die Bibliothek ist schlank und schnell konzipiert. Normalerweise ist ein klarer Bildschirm für ein 160 x 128 TFT in nur 85 ms fertig."

Na das hilft

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.