Leider komme ich aber nicht dahinter, wie ich eine beschriebene Zeile wieder richtig überschreibe. ![]()
Hier mein Sketch!
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27 // <<----- Add your address here. Find it from I2C Scanner
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
int Echo = 12 ;
int Trigger = 11 ;
int Abstand ;
int Zeit ;
void setup()
{
Serial.begin (9600) ;
lcd.begin (16,2); // <<----- My LCD was 16x2
// Switch on the backlight
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.home (); // go home
pinMode (Echo, INPUT) ;
pinMode (Trigger, OUTPUT) ;
lcd.setCursor (0,0);
lcd.print("Objektabstand");
}
void loop()
{
digitalWrite (Trigger, LOW) ;
delayMicroseconds (2) ;
digitalWrite (Trigger, HIGH) ;
delayMicroseconds (5) ;
digitalWrite (Trigger, LOW) ;
Zeit = pulseIn (Echo, HIGH) ;
Abstand /* in mm */ = (Zeit * 0.343) / 2 ;
lcd.setCursor (0,1);
lcd.print(Abstand);
Serial.println (Abstand) ;
delay (300) ;
}
Wenn der Ultraschallsensor jetzt 3000 mm misst, ich diese am LCD anzeigen lasse und dann 50 mm messe, bleiben die 2 letzten Nullen der 3000 mm aber trotzdem stehen. Es werden dann immer nur die ersten beiden Stellen geändert, messe ich dann wieder eine 3-stellige Zahl bleibt die letze Null der 3000 mm unverändert stehen.
![]()