-
Ok, also ich habe mal den LM61 direkt am ADC hängen gehabt und eine Temperatur von 17 Grad gemessen.. gleiche Stelle, neues Kabel 15m lang ohne Schirmung: gemessene Temperatur: 15-16 Grad es schwankt heftig..
Ich werde wohl noch einen 100NF Kondensator zwischen GND und ADC hängen... vielleicht flackert es dann nicht mehr so !!!
Ich werde wohl ohne die Schaltung nun arbeiten..
Frage: Wenn ich nun doch eine Kommazahl haben möchte z.B. 16,4 Grad inwiefern muss denn die Formel geändert werden ?? Ich bekomm ja jetzt nur 2 Stellige Zahlen !!!
mein bisheriger code:
Code:
int adcval;
char buffer[10];
adcval = Messen(0);
adcval = (adcval-240)/4;
itoa(adcval,buffer,10);
lcd_puts(buffer);
Dank dir....
-
Der Sensor geht auch nur +/-3 bis +/-4° genau, da werden Schwankungen nicht ausbleiben.
Die Auflösung kann mit diesen Werten am ADC höchsten 0.25°C betragen, am einfachsten geht es wenn man adcval als float nimmt. Ob man dass dann mit itoa auf das LCD bekommt weiss ich nicht. Buffer müsste dann buffer[4] oder buffer[5] sein damit man es auf 2 Stellen genau anzeigt.
Wenn man mit Ganzzahlen rechnen und trotzdem die Kommastellen sehen will wird es komplizierter, man muss Vor- und Nachkommstelle getrennt ausrechnen. Ich habe es vor kurzem für meine Akkuüberwachung so ausgeführt weil ich aus Performancegründen (und aus Spass) auf Float Variablen verzichten will und kann es raussuchen wenn es notwendig ist.
-
Ok ich habe hier nun eine Lösung gefunden bei der ich angeben kann wieviele Ziffern vor und nach dem Komma sind. Die Nachkommastelle wird gerundet !!
Code:
float adcval;
char buffer[5];
adcval = Messen(0);
adcval = (adcval-240)/4;
dtostrf(adcval,2,1,buffer); //(zahl,sges,snach,buffer)
lcd_puts(buffer);
Die funktion benötigt die stdlib.h !!
So bekomme ich z.B eine Anzeige von 16,5 °C.
Danke nochmal für alles..
Lg...
-
Gut das es jetzt funktioniert!
Diese Funktion muss ich mir merken, programmiere erst seit Oktober (nach 5 Jahren Pause seit Miniprogrammen beim Studium) und kenne noch nicht alle Feinheiten in C.
LG