INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Fehlercode-->no matching function for call to "UTFT::print(float&,int,int)"
26.02.2015, 11:10
Beitrag #1
Fehlercode-->no matching function for call to "UTFT::print(float&,int,int)"
include <memorysaver.h>
#include <UTFT.h>

#define ABSZERO 273.15
#define MAXANALOGREAD 1023.0
#define ANALOGPIN A2

float temperature_NTCB(float T0, float R0, float B, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei gegebener Materialkonstante B
// Erklärung der Parameter:
// T0 : Nenntemperatur des NTC-Widerstands in °C
// R0 : Nennwiderstand des NTC-Sensors in Ohm
// B : Materialkonstante B
// Vorwiderstand: Vorwiderstand in Ohm
// VA_VB : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
T0+=ABSZERO; // umwandeln Celsius in absolute Temperatur
float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}
float temperature_NTC(float T0, float R0, float T1, float R1, float RV, float VA_VB)
// Ermittlung der Temperatur mittels NTC-Widerstand
// Version der Funktion bei unbekannter Materialkonstante B
// Erklärung der Parameter:
// T0 : Nenntemperatur des NTC-Widerstands in °C
// R0 : Nennwiderstand des NTC-Sensors in Ohm
// T1 : erhöhte Temperatur des NTC-Widerstands in °C
// R1 : Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
// Vorwiderstand: Vorwiderstand in Ohm
// VA_VB : Spannungsverhältnis "Spannung am NTC zu Betriebsspannung"
// Rückgabewert : Temperatur
{
T0+=ABSZERO; // umwandeln Celsius in absolute Temperatur
T1+=ABSZERO; // umwandeln Celsius in absolute Temperatur
float B= (T0 * T1)/ (T1-T0) * log(R0/R1); // Materialkonstante B
float RN=RV*VA_VB / (1-VA_VB); // aktueller Widerstand des NTC
return T0 * B / (B + T0 * log(RN / R0))-ABSZERO;
}
// Declare which fonts we will be using
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

float T0=60; // Nenntemperatur des NTC-Widerstands in °C
float R0=221.2; // Nennwiderstand des NTC-Sensors in Ohm
float T1=120; // erhöhte Temperatur des NTC-Widerstands in °C
float R1=36.5; // Widerstand des NTC-Sensors bei erhöhter Temperatur in Ohm
float Vorwiderstand=100; // Vorwiderstand in Ohm
float temp;
int aValue=analogRead(ANALOGPIN);





UTFT myGLCD(ITDB32S,38,39,40,41);

void setup()
{

myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(BigFont);
}

void loop()
{
temp=temperature_NTC(T0, R0, T1, R1, Vorwiderstand, aValue/MAXANALOGREAD);
myGLCD.setColor(0, 200, 0);
myGLCD.print ("Golf 1 GTI G60", CENTER, 1);

myGLCD.print("NTC : " , LEFT,30);myGLCD.print(temp, CENTER, 30);myGLCD.print(" C", RIGHT, 30);


delay(1000);}


Hallo, ich versuche geraden oben angeführten sketch auf einen Arduino Mega 2560 zu übertragen .
Habe den Sketch aus mehreren Dateien zusammengefügt, mit einen 16/2LCD funkt dieses auch, nur wenn ich es auf eine UTFT umschreibe (3,2" sainsmart) bekomme ich immer eine Fehlermeldung--> no matching function for call to "UTFT::print(float&,int,int)"
Aus irgend einen Grund kann der Arduino die temp nicht auslesen, wenn ich aber temp in klammern schreibe dann schreibet er ins UTFT temp.
Ich möchte aber die Motortemp bei meinen Auto auslesen und anzeigen.
Könnte mir vielleicht jemand freundlicherweise einen Tipp geben wo das problem liegt !!
(Finde auch in den Fachbüchern über Arduino keine wirkliche Lösung)

Besten Dank im voraus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.02.2015, 11:26
Beitrag #2
RE: Fehlercode-->no matching function for call to "UTFT::print(float&,int,int)"
Hi,
das sieht einfach so aus, als ob das UTFT::print nicht für floats funktioniert.
Die Lösung könnte dtostrf bringen.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.02.2015, 12:11
Beitrag #3
RE: Fehlercode-->no matching function for call to "UTFT::print(float&,int,int)"
HalloundDanke für die Antwort.
Leider bin auf den Sektor Arduino sehr neu.

Aber ich glaube das der Arduino mit den wert temp nichts anfangen kann, nur weis ich nicht, wo der Fehler zu suchen ist oder ob ich mehrere sachen ändern muss.
Könntest du mir sagen wo ich den Fehler suchen sollte.

Danke im Voraus.
Sg Manfred
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.02.2015, 14:18 (Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2015 14:33 von rkuehle.)
Beitrag #4
RE: Fehlercode-->no matching function for call to "UTFT::print(float&,int,int)"
Hallo Manfred,

versuche zunächst mal anstatt auf das GLCD auszugeben eine Ausgabe auf den SerialMonitor und gucke ob da wirklich etwas kommt, was einem float-Wert entspricht:
Code:
// im Setup:
Serial.begin(9600);
// im Loop:
serial.println((float)(temp),1);
Wenn das gut aussieht ersetze
Code:
myGLCD.print(temp, CENTER, 30)
mit
Code:
myGLCD.printNumF(temp,dec, CENTER, 30,".",length,filler)
Dabei ist
dec - die Anzahl der Dezimalstellen (0 ist hier nicht erlaubt!)
length - die Gesamtlänge der Ausgabe inkl. Trennzeichen
filler - das Zeichen in "" welches vorn benutzt wird falls die Ausgabe kürzer als length ist (bei kleinen Werten zB.)
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2015, 19:02
Beitrag #5
RE: Fehlercode-->no matching function for call to "UTFT::print(float&,int,int)"
Hallo, danke für die Antwort.
Habe deinen Tipp versucht und mit
 
"myGLCD.printNumF(temp, 2, Center, 30)"
funktioniert es !!!
Danke noch mal !!!!!!!!

Habe aber auch noch versucht mehrere Temperaturen (verschiedene Tempfühler) über meinen Mega2560 einzulesen und anzuzeigen, aber das funktioniert nicht, kann ich die Anweisungen vom ersten Fühler nicht einfach kopieren und die werte Änder ??

Besten dank im Voraus.

Manfred[/php]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.03.2015, 11:04
Beitrag #6
RE: Fehlercode-->no matching function for call to "UTFT::print(float&,int,int)"
Hallo Manfred,

man müsste schon wissen was nicht funktioniert.
Um die Sache leichter zu machen gibt es hier: http://playground.arduino.cc/ComponentLib/Thermistor4 den Code für eine Thermistor-Klasse. Du müsstest den Code jeweils in eine .h und .cpp Datei speichern und das Ganze wie gehabt in einen Library-Ordner "Thermistor4" ablegen und im Code die ein Include für die Thermistor4.h eintragen.
Der Link hat dann auch ein Beispiel wie man mehrere Thermistoren abfragt. Für die Anzeige benutzt du deinen jetzigen Code mehrfach, nur eben mit unterschiedlichen temp-Variablen und Darstellungskoordinaten.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  UTFT an Arduino mega mit Flachbandkabel anschließen Jensus 1 882 03.10.2015 12:52
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste