Hallo, ich habe ein ähnliches Problem und hoffe auf einen Rat wie ich ein uint16_t "Format" in ein am TFT augabefähiges char konvertieren kann. Die RGB Farbwerte sollen als Zahl auf dem TFT Dispaly ausgegeben werden. Die Werte kommen aus einem TCS 34725 und werden parallel am seriellen Motior angezeigt. Fehlermeldung: invalid conversion from 'uint16_t {aka unsigned int}' to 'const char*' [-fpermissive] Code: #include <TFT.h> // Arduino LCD library #include <SPI.h> #include "Wire.h" #include "Adafruit_TCS34725.h" // Pindefinition Uno TFT #define cs 10 #define dc 9 #define rst 8 TFT TFTscreen = TFT(cs, dc, rst); // char array to print to the screen char WertRot ; Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X); void setup() { TFTscreen.begin(); TFTscreen.background(0, 0, 0); // Hintergrund schwaz TFTscreen.stroke(255, 255, 255); // Vordergrund weiß TFTscreen.setTextSize(2); // Textgröße TFTscreen.text("Sensor Value :\n ", 0, 0); //Test oben links TFTscreen.setTextSize(2); //Textgröße für Schleife // Serielle Kommunikation zur Ausgabe der Wert im seriellen Monitor Serial.begin(9600); Serial.println("ROT GRÜN BLAU Adafruit Sensor"); // Überprüfen, ob Color Sensor sich auch zurückmeldet if (tcs.begin()) { // Alles OK Serial.println("Sensor gefunden"); } else { // Kein Sensor gefunden. Programm an dieser Stelle einfrieren Serial.println("TCS34725 nicht gefunden ... Ablauf gestoppt!"); while (1); // Fehler } } void loop() { // Der Sensor liefert Werte für R, G, B und einen Clear-Wert zurück uint16_t clearcol, red, green, blue; delay(100); tcs.getRawData(&red, &green, &blue, &clearcol); Serial.print("\Clear: "); Serial.print(clearcol); Serial.print("\Red: "); Serial.print(red); Serial.print("\Green: "); Serial.print(green); Serial.print("\Blue: "); Serial.print(blue); // Zeilenwechsel ausgeben Serial.println(""); // Wartezeit anpassen für serielles Debugging delay(100); // set the font color TFTscreen.stroke(255, 255, 255); //Frontcolor TFTscreen.text(blue, 0, 20); delay(250); //Anzeige updaten TFTscreen.stroke(0, 0, 0); }
Du musst es in eine Zeichenkette schreiben/konvertieren. Das geht z.B. mit itoa(), oder sprintf()
Deine Antwort war vollkommen richtig ! sprintf(bufferR "%d" ,red); ...... TFTscreen.text( bufferR , 40, 80); Funktioniert ! :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.