Universelles Netzgerät mit Arduino & Co

hallo autoino

ich habe dir mal die anzeige für ma und Leistung geändert und ein delay eingefügt, damit die letzte stelle nicht so rum zappelt.
die Probleme mit den klebenden zeichen bekommst du aber auch bei Spannung und Strom wenn du die 10 über und unterschreitest.

gruß ardubu

[#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,20,4);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  Wire.begin();
  
  
  lcd.begin(20, 4);
  lcd.print("UNG");
  lcd.setCursor(0, 1);
  lcd.print("Universelles");
  lcd.setCursor(0, 2);
  lcd.print("Netz-");
  lcd.setCursor(0, 3);
  lcd.print("Geraet");

// Löschen der Werbung nach der vorgegebenen Zeit
  lcd.cursor();
  delay(2500);
  lcd.clear(); 
}

void loop() {

// Einlesen der Spannung
  int voltage = analogRead(A0);
// Skalierung des Eingangssignals auf die maximal möglichen 5V bei einer Auflösung von 10 bit
  float u = voltage * (5.0 / 1023.0);
  
// Einlesen des Stromes
  int current = analogRead(A1);
// Skalierung des Eingangssignals auf die maximal möglichen 5A bei einer Auflösung von 10 bit
  float i = current * (5.0 / 1023.0);
  int i_mil = i * 1000;

// Berechnen der Leistung nud Multiplikation mit 1,0 für die Darstellung auf 2 Kommastellen
  float p = u * i;  
  
// Ausgane an das LCD --> 1.: Stelle; 2.: Reihe 
  //lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Spannung:");
  lcd.setCursor(10, 0);
  lcd.print("[V]  ");
  lcd.setCursor(14, 0);
  lcd.print(u);
  lcd.setCursor(0, 1);
  lcd.print("Strom:");
  lcd.setCursor(10, 1);
  lcd.print("[A]  ");
  lcd.setCursor(14, 1);
  lcd.print(i);
  lcd.setCursor(0, 2);
  lcd.print("");
  lcd.setCursor(9, 2);
  lcd.print("[mA] ");
  lcd.setCursor(14, 2);
  lcd.print("      ");
  lcd.setCursor(14, 2);
  lcd.print(i_mil);
  lcd.setCursor(0, 3); 
  lcd.print("Leistung:");
  lcd.setCursor(10, 3);
  lcd.print("[W]  ");
  lcd.setCursor(14, 3);
  lcd.print("      "); 
  lcd.setCursor(14, 3);
  lcd.print(p);
  delay(200);
}
/code]