Hallo zusammen,
ich habe ein LDC Display
Auf dem möchte ich mir werte eines Drehgebers ausgeben lassen, das klappt soweit auch schon.
ich habe jedoch ein Problem wenn ich die Werte neu schreiben lassen möchte das mir nicht alles Überscheiben wird.
Im Internet habe ich gelesen das man das einfach mit Leerzeichen machen soll.
Doch das hat bei mir bzw. bei dem LCD Display bewirkt das nichts.
Ich habe mir ein Test Code gemacht
// Display_Tool.ini
#include <Arduino.h> // von Arduino System
#include <U8g2lib.h> // von Oliver => für Display
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // Display Installiren
/* VDD => 5V+ (Arduino)
* GND => GND (Arduino)
* SCK => Pin 20 (Arduino Mega)
* SAD => Pin 21 (Arduino Mega)
*/
//
char buffer [10];
void setup() {
u8g2.begin(); // Display Starten
Wallpaper(); // Wallpaper aufrufen
} // SETUP
void loop() {
int Pause = 250;
Display_Aktuallisiren(70, 25, "1234567890");
delay(Pause);
long TMP = 100;
Display_Aktuallisiren(70, 25, itoa(TMP, buffer, 10));
delay(Pause);
Display_Aktuallisiren(70, 25, " -5");
delay(Pause);
Display_Aktuallisiren(70, 25, "Muster");
delay(Pause);
} // LOOP
void Wallpaper(){
/* Buffer CLS */ u8g2.clearBuffer(); // Lösche den Puffer
/* Display CLS */ u8g2.clearDisplay(); // Lösche die Anzeige auf dem Bildschirm
/* Schriftart */ u8g2.setFont(u8g2_font_ncenB08_tr); // eine geeignete Schriftart wählen
/* Ueberschrift */ u8g2.drawStr(0, 10, "Schrittmotoren Tool");
/* Schriftart */ u8g2.setFont(u8g2_font_5x7_tf);
/* Text */ u8g2.drawStr(20, 25, "Schritte:");
/* Text */ u8g2.drawStr(35, 35, "Speed: ms");
/* Text */ u8g2.drawStr(00, 45, "Drehrichtung:");
/* Text */ u8g2.drawStr(25, 55, "Treiber:");
/* Ausgabe */ u8g2.sendBuffer();
} // WALLPAPER
void Display_Aktuallisiren(int x_koordinate, int y_koordinate, const char Wert[10]){
/*
* Was X, Y
* Schritte 70, 25
* Speed 70, 35
* Drehrichtung 70, 45
* Treiber 70, 55
*/
/* Schriftart */ u8g2.setFont(u8g2_font_5x7_tf);
/* CLS */ u8g2.drawStr(x_koordinate, y_koordinate, " " );
/* Wert ausgabe */ u8g2.drawStr(x_koordinate, y_koordinate, Wert );
/* Ausgabe */ u8g2.sendBuffer();
} // DISPLAY_AKTUALLISIREN
leider klappt das mit dem zuerst Löschen und dann den Neuen Wert rein schreiben nicht.
Also ich meine die Zeile hier:
/* CLS */ u8g2.drawStr(x_koordinate, y_koordinate, " " );
Was habe ich da nicht verstanden?
Gruß Mücke
[EDIT]