Arduino Enternuing auf TFT ausgeben

Brauche bitte eine Hilfe.
Bin Anfänger.
Habe ein Arduino Nano und Uno.
1,8 tft ST7735 Display.
Ultraschallsensor.

Möchte nun die Entfernung auf dem Display ausgeben plus Seriell.

Seriell klappt einwandfrei.
Auf dem Display zwar auch, aber nicht wie ich es möchte.

Es Soll entfernung ausgegeben werden und dann das Ergebnis, was immer aktutalisiert wird.

Aber das funktioniert nicht.
Die Entfernung wird fortlaufend in mehrern Zeilen ausgegeben und nicht in einer Zeile und dann immer wieder aktualisiert.

Wo mache ich da einen Fehler?

// HC-SR04 und 1.8 Zoll TFT-Farb-Display (st7735)
 
#define cs   10 // Arduino-Pin an Display CS   
#define dc   9  // Arduino-Pin an Display A0
#define rst  8  // Arduino Reset-Pin


int trigger=7;

int echo=6;

long dauer=0;

long entfernung=0;
 
#include <Adafruit_GFX.h>    // Adafruit Grafik-Bibliothek
#include <Adafruit_ST7735.h> // Adafruit ST7735-Bibliothek
#include <SPI.h>
 
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);  // Display-Bibliothek Setup
 
void setup(void) {
  {
Serial.begin (9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  
  tft.initR(INITR_BLACKTAB);     // ST7735-Chip initialisieren
  tft.fillScreen(ST7735_BLACK);  // Display schwarz
  tft.setTextWrap(true); 
  
  
  tft.setTextSize(2);
  tft.setTextColor(ST7735_BLUE);
  tft.setCursor(5,4);
  tft.print("Entfernung");
  
 
 
}
 

 
void loop() {
 
  {

digitalWrite(trigger, LOW);

delay(5);

digitalWrite(trigger, HIGH);

delay(10);

digitalWrite(trigger, LOW);

dauer = pulseIn(echo, HIGH);

entfernung = (dauer/2) / 29.1;

if (entfernung >= 500 || entfernung <= 0)

{

Serial.println("Kein Messwert");

}

else

{

Serial.print(entfernung);

Serial.println(" cm");

}
  

  delay(1000);
  
}
 


 
    tft.print(entfernung);
    tft.print("cm");
    delay(4000);

  }

Hallo,
DU:

tft.print(entfernung);
   tft.print("cm");
   delay(4000);

ICH:

tft.setCursor(5,4);
tft.print("    ");
tft.print(entfernung);
   tft.print("cm");

Gruß und Spaß
Andreas
P.S. schaff das delay da raus

reimundko:
Brauche bitte eine Hilfe.
Bin Anfänger.
Habe ein Arduino Nano und Uno.
1,8 tft ST7735 Display.
Ultraschallsensor.

Möchte nun die Entfernung auf dem Display ausgeben plus Seriell.

Seriell klappt einwandfrei.
Auf dem Display zwar auch, aber nicht wie ich es möchte.

Es Soll entfernung ausgegeben werden und dann das Ergebnis, was immer aktutalisiert wird.

Aber das funktioniert nicht.
Die Entfernung wird fortlaufend in mehrern Zeilen ausgegeben und nicht in einer Zeile und dann immer wieder aktualisiert.

Wo mache ich da einen Fehler?

Du musst deinem TFT auch die Position mitteilen, an der du die Entfernung eintragen möchtest.

Ich kennen dein TFT und die Library nicht, daher kann ich die korrekte Anweisung nicht nennen.

Aber das könnte in etwa so aussehen:

    tft.SetCursor(10, 3);
    tft.print(entfernung);
    tft.print("cm");
    delay(4000);

Also "SetCursor" ist von mir nur mal so angenommen.
Aber damit könntest du deine Information an jede beliebige Stelle schreiben.

Edit:
SkopyMobil war schneller. :wink: