Variablen/Strings verketten...

Hallo
Ich beschäftige mich seit einigen Tagen mit einem UNO und hab dabei das Problem, dass ich es nicht schaffe 3 Variablen zu verketten...

    lcd.setCursor(0,0); // set the cursor to column 0, line 0
    lcd.print("Licht: ");
    lcd.print(lux);
    lcd.print(" Lux");

Ich stelle mir hierbei folgendes vor:

lcd.setCursor(0,0); // set the cursor to column 0, line 0
lcd.print("Licht: " + lux + " Lux");

Leider funktionieren die mir sonst üblichen Zeichen wie . & + nicht um die verschiedenen Zeilen zu einer zusammen zu fassen.

Bei meiner Suche mit Google bin ich hier nicht weiter gekommen, ebenso finde ich keine Lösung in den "BuiltInExamples" (https://www.arduino.cc/en/Tutorial/BuiltInExamples)...
Vielleicht bin ich auch einfach nur Blind und brauche eine kleinen Stoß in die richtige Richtung.

Ich experimentiere gerade mit verschiedenen Sensoren und will die Messwerte später per URL an eine SQL-Datenbank übergeben. Spätestens hier brauche ich das vermutlich um die URL mit Ihren Parametern zusammen zusetzen.

Strings so zu verketten ist nur Ressourcen-Verschwendung

Vernünftig geht es hiermit:
http://arduiniana.org/libraries/streaming/
Bildet den C++ Streaming Operator nach und verbraucht keine zusätzlichen Ressourcen

Serenifly:
Strings so zu verketten ist nur Ressourcen-Verschwendung

Vernünftig geht es hiermit:
Streaming | Arduiniana
Bildet den C++ Streaming Operator nach und verbraucht keine zusätzlichen Ressourcen

Danke für den Tipp!
Hab das gerade getestet, Leider muss man den Text am Ende mit ausreichend Leerzeichen verwenden, da die Streaming-Library sonst nur komische Zeichen ins Display schreibt.

So wie ich es auch verstehe, ist diese Library nur für LCD's ? Das schränkt das Thema natürlich wieder ein...

t0m4h4wk:
Leider muss man den Text am Ende mit ausreichend Leerzeichen verwenden

Nein. Du solltest vielleicht verstehen was da gemacht wird. Schau dir die Library an. Das ist ganz einfach

template<class T> 
inline Print &operator << (Print &stream, T arg) 
{ 
  stream.print(arg); 
  return stream; 
}

Da wird nur der << Operator überladen. Aber letztlich wird print() ausgeführt. Deshalb ist es ja so ressourcensparend. Die Syntax ist etwas anders aber es wird genau das Gleiche gemacht

Wenn da was falsch angezeigt wird liegt das an deinem Display

So wie ich es auch verstehe, ist diese Library nur für LCD's ? Das schränkt das Thema natürlich wieder ein...

Falsch. Das steht doch auf der Seite dort

This library works for any class that derives from Print

Siehe auch den Code oben. Man kann alle Klassen übergeben die von Print abgeleitet sind und dann wird die print() Methode des entsprechenden Objekts aufgerufen

Das schränkt das Thema natürlich wieder ein.

Wenn dir das Streaming nicht schmeckt, kannst du auch gerne snprintf() oder sprintf() verwenden.