Hallo, ich bin zufällig durch googeln auf dieses Forum gekommen. In meiner Abendschule habe ich folgende Aufgabe bekommen, und zwar mit dem Mikrocontroller die Temperatur zu messen. meine Freundin soll die Temp. auf dem LCD anzeigen lassen. Wir haben uns für den Atmega8 entschieden, da wir in der Schule auch damit arbeiten und er uns schon etwas bekannt ist. Programmieradapter (ISP), software zum Programmieren steht uns auch zur Verfügung. Mit dem AD-Wandler sollten es keine Probleme geben (hoffe ich). Nun komme ich lieber langsam zum Problem. Da wir Elektronik noch nicht viel gemacht haben, weiss ich nicht genau was ich und wie machen soll. Als Temp.Sensor hat uns unser Lehrer den kty81 vorgeschlagen. Datenblatt hat er uns auch gegeben. Mit dem fertigen Thermometer sollen Temperaturen von -15 bis +60 gemessen werden. rest ist egal.. nur dieser bereich ist wichtig. wenn ich in das Datenblatt schaue, sehe ich, dass der Widerstand sich nicht so "viel" in diesem Bereich ändert. um aber ein besseres Ergebniss zu bekommen, muss ich möglichst breiteren Spectrum vom Ad-Wandler nutzen. also von 1V (bei -15°) und 4V (bei +60°). Wenn ich einen Stannungsteiler baue, dann komme ich sowieso nicht auf das Ergebniss, das ich brauche. Kann mir einer helfen? Gruss Martina & Olga
an JÜrgen G. sorry, Operationsverstärker sagt mir nichts. geht das noch anders?
Hallo. Folgende Seite ist in diesem Zusammenhang ziemlich gut: http://www.sprut.de/electronic/temeratur/temp.htm
Die vom der Schaltung abgegebene Meßspannung liegt zwischen 1,01V (bei -20°C), 1,47V (bei +40°C) und 1,93 V(100°C) Der ADC des PIC mit 5mV Auflösung kann die Temperatur gerade noch mit 1°C Genauigkeit wandeln. Da bleibt keine Reserve mehr. auf dieser Seite war ich schon. wie man sieht ist es viel zu ungenau.
gibt es im Netz ein programm, womit man die Oerationsverstärker aurechnen kann?
Wenn Auflösung von 0,5°C oder 0,25°C genug ist, auch ohne Operationsverstärker.
so, ich habe mal mit eurer Hilfe was probiert. es funzt soweit mit Elektronic Workbench. weiss aber nicht, ob mann auf den Sensor so die Spannung legen kann. bitte Anhang gucken. geht er davon nicht kaputt?
Wenn du nicht auf den kty81 festgenagelt bist, besorg dir einen NTC (zB. bei Reichelt, einfach nach NTC suchen). Den kannst du mit einem einzigen Widerstand als Spannungsteiler an den atmega klemmen und die Temperatur auslesen. Ist sicher nicht so genau wie mit OP, aber definitiv einfacher. Aus der Spannung die Temperatur zu errechnen ist nicht ganz so einfach, in den Reichelt Datenblättern stehen die Formeln aber drinnen. Sind halt Fließkommasachen, aber der Mega8 hat dafür genug Flash drauf. Und wenn du doch etwas genauer messen musst, kannst du zB. den 8535 nehmen, der hat schon Verstärker für 10x und 200x integriert. Damit hab ich vor 'ner Weile mit einfachem NTC und Spannungsteiler Messungen auf 0.01°C gemacht. Die absolute Abweichung ist ohne Abgleich natürlich viel größer, aber du kannst zB. schon messen wie die Temperatur ein paar Hundertstel abfällt, wenn du den NTC abschattest, oder steigt, wenn du deinen Finger in die Nähe hälst.
danke erstmal... aber ich SOLLTE das schon mit dem KTY81 machen. ist mein Schaltplan richtig? Macht das was, dass der Sensor eine Spannung bekommt?
Ich würd den Widerstand im Spannungsteiler mit dem kty81 größer machen. Im Datenblatt sind zwar bei 25°C max. 10mA angegeben, aber mit 5mA bist du da nicht weit von entfernt. Mit 5kOhm bleibst du bei jeder Temperatur unter dem Maximum. Für den OpAmp brauchst du eigentlich auch noch 'ne negative Versorgungsspannung. Ich würd das Ding einfach direkt an den ADC vom uC hänge und gegen die interne 2.56V Referenz messen. Mit 2.2kOhm spuckt der ADC bei 75°C 810 aus, bei ~ -30°C 483. Macht Über 105°C 327 Schritte, sollte für 'ne Anzeige auf 1°C genau reichen.
Hallo Martina, Also ich verwende für Temperaturmessung mit dem KTY81 und ATmega8 einfach nur ein Präzisionswiderstand von 2,7k-1% und einer Potentiometer von 5kOhm bis 10kOhm. AVCC .------------ | | R | R 2,7K 1% | R | | - ADCIN--- 5 <---.--Aref | K | | - |10n K | - T | - Y | | 8 | | 1 | | | | | AGND AGND AGND Versuchst du richtige Werte aus beiliegende Excel-Tabelle für die Referenzspannung und NULLTEMPERATUR zu finden. Zuerst AVCC messen und ins Tabelle eingeben(als mV). Dann Vref aus Tabelle auslesen(z.B. Aref=C*AVCC=0.795*AVCC) und einstellen. Dafür ist ein Spindel-Trimmerpoti gut geeignet. Einfach Poti zwischen AVCC und AGND und Mittelanschluss an Aref Pin. Auflösung ist 0.5°C und Linearisierung ist nicht notwendig. Temperaturmessung unterhalb 0°C ist auch möglich. Und alles ohne Operationsvertärker. Codebeispiel:
1 | #define NULLTEMPERATUR 298
|
2 | |
3 | char adc_in; |
4 | unsigned int Temp; |
5 | .
|
6 | .
|
7 | // Referenzspannungsquelle ist Aref pin
|
8 | ADMUX=0x00 //External VREF |
9 | |
10 | |
11 | signed int read_KTY81(char adc_in) |
12 | {
|
13 | signed int temperatur; |
14 | temperatur=read_adc(adc_in); |
15 | temperatur-=NULLTEMPERATUR; |
16 | return temperatur; |
17 | }
|
18 | .
|
19 | .
|
20 | Temp=read_KTY81(adc-in); |
21 | |
22 | Printf("Temperatur1=%d,%-d\xf8\x43";Temp/2,abs((Temp%2)*5)); |
23 | ^^^^
|
24 | //Temperaturanzeige mi °C
|
Branko
hallo, ich komme mit dem auslesen bzw. auswerten der temperatur noch nicht so ganz klar. habe die schaltung exakt so aufgebaut allerdings ohne das poti (also kty81-110 und 2k7 teilerwiderstand). warum kann ich denn nicht einfach die internen 2,56v als referenzspannung nehmen? wenn ich den adc so messen lasse kommt hier bei raumtemperatur als dezimalwert so ca. 556 raus. wie genau kann ich diesen wert nun in grad celcius umrechnen? habe in der excel tabell 4980mv als vcc eingetragen und 0,515 als C die errechnete nulltemperatur liegt dann bei 461. aber 556-461 ergeben 95 .. und so heiß ist es hier wahrlich nicht :-) vielen dank schon im vorraus andi
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.