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);
}