Hallo. Ich versuche mich gerade so experimentierhalber mit dem aufbau eines Thermometers mit LCD Anzeige. Nun habe ich aber Probleme so einigermaßen genaue Ergebnisse zu bekommen.
Im Einsatz ist ein Atmega8, ein LCD und eben der KTY der per Spannungsteiler (2,2K) am Atmega hängt.
Ich habe einmal den Wert ermittelt den der ADC bei 0°C aus gibt und den Wert bei 100°C
Das Problem ist halt das der KTY wohl nicht ganz linear ist. Kann man das irgendwie Softwaremäßig so einigermaßen Kompensieren?
Halte ich den KTY in Eiswasser Zeigt mir mein Thermometer zwar 0°C an und bei Kochendem Wasser zeigt es auch 100°C an nur lasse ich ihn so im raum liegen kommt als ergebniss 32°C raus obwohl laut 2 anderen Raumthermomter hier 25,5°C sind (Der Kamin ist an)
Und kann man die auflösung auch .erhöhen? Wenn ich TLow von THigh abziehe bleiben ja nur 96 Werte für 100 Grad über oder verstehe ich das falsch?
Hier mal ein Programmauszug:
PS: Bei 25,5 °C laut anderem Thermometer zeigt Adc 521 an.Code:Tlow = 490 ' 0 °C Thigh = 586 ' 100 °C Do Waitms 400 W = Getadc(0) T1 = W - Tlow T2 = Thigh - Tlow Temp = T1 / T2 Temp = Temp * 100 Locate 2 , 1 ' Zeigt den aktuellen ADC Wert an Lcd Str(w) Locate 4 , 3 ' Temperaturanzeige Lcd "Temp " ; Locate 4 , 8 Lcd Fusing(temp , "##.#") ; " " ; Chr(223) ; "C " Loop







Zitieren

Lesezeichen