Interger Ausgeben über lcd.print Befehl

Hallo,

ich habe Arduino Uno Board mit einem ATmega328 uController 8) und benutze das LCD Keypad Shield. Ich bin der Lage Strings auf dem Display auszugeben, möchte aber gerne die Zahlenwerte einer Integerzahl im Dezimalsystem ausgeben lassen:

Beispielcode

int x=12; //irgendeine Beispielzahl

void loop() { lcd.cursorTo(2, 0); lcd.print("Wert x= %i", x); //Um diese Zeile geht es! }

Das Programm sollte mir nun die 17 anzeigen, jedoch scheint der Print Befehl so nicht zu nutzen sein (wie es der printf Befehl aus C kann). Schreibe ich Beispielsweise: lcd.print (x) dann wird mir der ASCII Wert angezeit, auf INT Casten funktioniert bei mich auch nicht...

Wie kann ich mein Vorhaben lösen ohne über eine ASCII Tabelle zu gehen :roll_eyes:. LG Mona

Hallo,

probier doch mal so :

char tmp[30];

int x=12; //irgendeine Beispielzahl

void loop() { lcd.cursorTo(2, 0); sprintf(tmp,"Wert x= %i",x)

lcd.print(tmp); //Um diese Zeile geht es! }

ist zwar ein kleiner Umweg, funktioniert bei mir aber.

Schönes Wochenende

Gruss Kalli

Mona: Ich bin der Lage Strings auf dem Display auszugeben, möchte aber gerne die Zahlenwerte einer Integerzahl im Dezimalsystem ausgeben lassen:

Hallo Mona, ich kenne die LCD-Library nicht, aber wenn die Funktion lcd.print() einen String haben will, dann gib ihr doch einen:

int x=12;
  
char PufferFuerAusgabe[50];
char PufferFuerZahl[10];
  
strcpy (PufferFuerAusgabe, "Wert x= ");        // erster Teil der Ausgabe
itoa(x, PufferFuerZahl, 10);                         // integer to ascii, Zahlenbasis 10
strcat (PufferFuerAusgabe, PufferFuerZahl);   // in String gewandelte Zahl anhängen
lcd.cursorTo(2, 0);
lcd.print(PufferFuerAusgabe);

...alternativ mit höherem Resourcenverbrauch und viel flexibler für Freunde von printf():

int x=12;
char PufferFuerAusgabe[50];

sprintf (PufferFuerAusgabe, "Wert x= %d", x);
lcd.cursorTo(2, 0);
lcd.print(PufferFuerAusgabe);

Konnte den Code nicht ausprobieren, sollte aber funktionieren ;)

Kleiner Tipp nur am Rande: Beim Posten kann man mit dem Raute-Button den Source-Code (speziell wenn er länger ist) besser lesbar machen.

Gruß Wolfgang

Edit: Mist, schon wieder zu langsam ;)