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.