Wieso gehen nur Konstanten und keine Variablen?

#include <SPI.h>
#include <stdint.h>
#include <TFTv2.h>

void setup() {
TFT_BL_ON; // turn on the background light
Tft.TFTinit(); // init TFT library
Tft.fillScreen(0, 200, 0, 320, BLUE);// unten, oben, links, rechts
int i = 1;
String Text = “Text1”;
TextOrientation orientation;
orientation = LANDSCAPE;
Tft.drawString(“Text”, 10, 10, 3, WHITE, orientation);
Tft.drawString(Text, 50, 50, 3, WHITE, orientation);
Tft.drawString(String(i), 100, 100, 3, WHITE, orientation);

Zeile 13 geht noch, 14 und 15 machen Probleme. Ich muss aber statt Konstanten Variable benutzen.

no matching function for call to ‘TFT::drawString(String&, int, int, int, unsigned int, TextOrientation&)’

no matching function for call to ‘TFT::drawString(String, int, int, int, unsigned int, TextOrientation&)’

Was mache ich hier verkehrt?

Die String Klasse ist überflüssig

Geht i.d.R. besser so:

const char* text = "Text1";

Und schau dir den Quellcode der Bibliothek an um herauszufinden was es da an Methoden gibt. Es ist z.B. möglich dass es eine extra Methode gibt um Integer direkt zu drucken. Wenn nicht gibt es Konvertierungsfunktionen um alles Mögliche in char Arrays zu schreiben

  1. Bitte CODE TAGs verwenden
  2. Einen kompilierbaren Sketch liefern mit Quellen der Bibliotheken und der Hardware.
    Grüße Uwe

String ist nicht (nur) überflüssig, sondern der falsche Datentyp. Die von dir verwendeten Funktionen erwarten einen const char*, das kann auch gern ein char* oder ein char sein.

Ich hoffe du kennst den großen Unterschied zwischen char und char*.