Lcd.print "verschluckt" Zahl vor Komma

Tach

Hab ein Problem mit folgendem Code, der eine float-Zahl (Amps), die zuvor durch dtostrf umgewandelt wurde, auf ein 4x16 Display printen soll. Während die Ausgabe auf dem Serial Monitor bei z.B. outstr= 1.12 korrekt angezeigt wird, erscheint auf dem Display (lcd.print) nur "00.12". Die Zahl vor dem Komma wird also immer "verschluckt". Weiss jemand wieso?

Danke!
600W_Amp_Display.ino (1.8 KB)

Du überschreibst die Ausgaben bei Position (14,0) und (15,0)

Ah ja, jetzt sehe ich's. So ein dummer Fehler. Danke Dir!

Sowas kommt öfters vor, eine Art Betriebsblindheit.

Du kannst das Thema als erledigt (Resolved) markieren.

Ich habe nun weiter am Code gearbeitet. Jetzt kommen plötzlich random float-Zahlen wo per Setup eigentlich die fixen strings ("Current Draw" etc.) geprintet werden sollten. Die floats ändern synchron mit den korrekten berechneten floats rechts.
Wieso das? Ich printe ja nirgends floats z.B. auf x=0 (also ganz links des Displays)

Gut wenn du weiter machst. Nur leider sehen wir nicht, was du machst.
Poste deinen Sketch in Code-Tags, so wie hier üblich.

Ups, sorry.

600W_Amp_Display.ino (2.5 KB)

Du musst dringend und zwingend Grundlagen lernen!

float CurrentVal = A0; // voltage input from current measuring
float TempVal = A1;    // voltage input from temp sensor
float RpowerVal = A2;
float FpowerVal = A3;

Das sind constante bytes.

Warum bastelst Du da mit dtostrf?

    lcd.print(outstr); // print the calculated value to lcd-display

    Current = (((((analogRead(CurrentVal)) * 5.0) / 1024.0) - 0.5) * 7.518);  // calculating the current
    dtostrf(Current, 5, 1, outstr);     

Nur um 4 Werte auszugeben braucht es das nicht.

Warum setzt du den Sketch nicht direkt hier rein und verwendest Code-Tags?
Dann kann den auch jeder lesen. Oder möchtest du, dass den nicht jeder liest ?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.