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]