Problem mit UTFT Libary bei ner Lötstation

Servus an alle.

Bin neu hier im Forum und möchte mich mal kurz vorstellen.

Bin 29 Jahre alt, komme aus Oberösterreich, gelernter Elektroinstallationstechniker und arbeite seit 5 Monaten in einer Firma die Industrieelektronik herstellt. Aber trotzdem sind meine C Kentnisse sehr bescheiden, da ich mehr mit der Hardware zu tun habe und vorher immer auf der Baustelle war.

Hobbys sind eigentlich alles was mit Strom und Technik zu tun hat. Jetzt auch schon ein bisschen mit C und Arduino, aber noch blutiger Anfänger. Einige wird mein Nickname etwas komisch vorkommen. Das ist mein Rufzeichen, da ich Funkamateur bin.

So jetzt zu meinen Anliegen.

Ich habe mir eine Lötstation gebastelt, die mit nen OPV die Temperatur des Thermoelements ausliest und mittels Transistor die Leistung regelt. Gesteuert wird alles natürlich mit nen Arduino (Vorerst UNO später dann ein Mega)

Die Lötstation ist nicht von mir erfunden sondern vom Martin K. (Quellenangabe ist im Sketch).

Habe nur die 7 Segmentanzeige gegen ein HD44780LCD getauscht, also Multiplexing raus und LCD Libary rein. Ein paar Anpassungen wie Temperaturvorwahl usw habe ich auch noch vorgenommen.

Aber jetzt zu meinen Problem.

Die Lötstation funktioniert in der Praxis sehr gut mit dem HD44780LCD.

Jetzt habe ich mir ein 16Bit 3,2 Zoll LCD besorgt was mit der UTFT Lib eingebunden ist. Text schreiben usw funktioniert ja schon. Aber ich will die Variablen z.b. actual_temperature im TFT ausgeben.

Habe gelesen das ich die Variable in einen String umwandeln muss oder so ähnlich. In der Doku von der UTFT Lib steht dann was mit myGLCD.printNumF oder myGLCD.printNumI.

Es geht ja darum das, das TFT praktisch keine varierende Werte einfach so ausgeben kann wie beim HD44780 LCD oder?

Vieleicht hat ja wer nen Tip für mich.

Die UTFT Libary ist hier zu finden

mfg francy

L_tstationTFT.ino (14.9 KB)

OE5AMP:
Es geht ja darum das, das TFT praktisch keine varierende Werte einfach so ausgeben kann wie beim HD44780 LCD oder?

Die Library unterstützt nicht die Arduino Print Funktionalitäten wie die Character LCDs, aber mit den zwei Funktionen die du angesprochen hast geht es. Die unterstützten auch eine Formatierung auf minimale Breite damit die Ausgabe passt wenn man längeren Text durch kürzeren ersetzt. Siehe Doku:
http://www.rinkydinkelectronics.com/resource/UTFT/UTFT.pdf

Oder man nimmt C Funktionen wie itoa() oder dtrostrf() für die Konvertierung. Dann muss man sich aber um die Formatierung der Breite selbst kümmern. Das ist eher nichts für dich.

Servus

Danke für deine Antwort. Die Doku habe ich schon gelesen aber anscheinend nicht verstanden. Das sind ja zwei paar Schuhe :slight_smile:

Laut Doku muss ich

myGLCD.printNumI(actual_temperature),3, LEFT, 48);

eingeben. Da bekomme ich die Fehlermeldung

no matching function for call to 'UTFT::printNumI(int&)'

Im Sketch steht ziemlich weit oben int actual_temperature. Wird ja im Sketch auch so verwendet.

Oder muss ich die Variable actual_temperature noch irgendwie umsetzten.

Kommastellen gibts nicht also müsste Integer passen.

mfg

Edit: Sorry habe den Großteil des Fehlercodes unterschlagen

L_tstationTFT:579: error: no matching function for call to 'UTFT::printNumI(int&)'

C:\Users\Laptop\Desktop\SolderingStation-c930bec56c7a70d98e22e5a682b001ffaf9c7758\Lötstation\L_tstationTFT\L_tstationTFT.ino:579:38: note: candidate is:

In file included from C:\Users\Laptop\Desktop\SolderingStation-c930bec56c7a70d98e22e5a682b001ffaf9c7758\Lötstation\L_tstationTFT\L_tstationTFT.ino:29:0:

C:\Program Files (x86)\Arduino\libraries\UTFT/UTFT.h:217:8: note: void UTFT::printNumI(long int, int, int, int, char)

void printNumI(long num, int x, int y, int length=0, char filler=' ');

^

C:\Program Files (x86)\Arduino\libraries\UTFT/UTFT.h:217:8: note: candidate expects 5 arguments, 1 provided

L_tstationTFT:579: error: expected ';' before ')' token

exit status 1
no matching function for call to 'UTFT::printNumI(int&)'

hi,

Du hast jedenfalls eine klammer zuviel im befehl, und falls die function überladen ist (was ich annehme), geht's deswegen mit dieser fehlermeldung schief.

gruß aus wien,
stefan

EDIT: und Du hast x und y vertauscht, nimm:
myGLCD.printNumI(actual_temperature, LEFT, 3, 48);

48 soll die länge sein? kommt mir viel vor...

myGLCD.printNumI(actual_temperature),3, LEFT, 48);

Was soll die erste schließende Klammer sein?! Das ist genau was hier angemeckert wird:

L_tstationTFT:579: error: expected ';' before ')' token

Die Parameter stehe doch klar dort:

printNumI(num, x, y[, length[, filler]]);

Die letzten zwei sind Optional. "filler" ist standardmäßig sowieso ein Leerzeichen

LEFT geht nur für x. Ist also schon mal an der falschen Stelle. Am besten verwendest du erst mal absolute Koordinaten

Also z.B.:

myGLCD.printNumI(actual_temperature, 10, 10, 3);

Das druckt die Zahl an Position 10/10 mit mindestens 3 Zeichen Breite.

Danke für deine Hilfe.

Jap die Klammer hat mir das Genick gebrochen. Habe da schon verschiedenste Variationen probiert und da hat sich die Klammer eingeschlichen. Naja ich muss mir wirklich mal die Basics anschauen, damit ich auch sinnvoll was lernen kann. Komme sowieso nicht daran vorbei.

Jetzt funktionierts :slight_smile:

Werde mich da mal damit genauer befassen.

Ziel ist es eine Mehrkanal Lötstation zu bauen. mit Entlötkolben, Vakuumpumpe und SMD Pinzette.

Die 1 Kanal Version funktioniert perfekt und ist auch kalibriert worden.

mfg francy