Hallo zusammen, das Thema PT100 wurde hier sicherlich schon reichlich diskutiert und beraten. Jedoch konnte ich auch nach langer Suche die für mein Fall benötigte Hilfe leider nicht finden. Ich möchte mit PT100 die Temperatur (0-200 °C) messen und diese auf einem LCD Display anzeigen. Ich habe die Messverstärkerschaltung wie auf diesem Link nachgebaut: http://www.mikrocontroller.net/attachment/28386/msy0000.pdf Nun weiss ich aber nicht, wie ich das von dem analogen Signal (0-5 V) durch die vom AD-Wandler in digitale Signale umgewandelte Ergebnis in die korrekte Temperaturangabe umwandeln kann. Der AD-Wandler des Atmega8 besitzt 10bit und wandelt das ganze intern in Zahlen von 0-1024 um. Wie kann ich diese Information für mein Temperaturbereich von 0-200 °C nutzen? Gibt da schon fertige Codes zu? Wenn ja und ich es übersehen haben sollte, bitte ich um Links dazu. Benutze Bascom AVR, daher wäre es hilfreich, wenn der Code passend zu dieser Software wäre. Für eure Hilfe wäre ich sehr dankbar. Gruß, Eddy
Guck mal hier hin: http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC Dort ist es ganz manierlich beschrieben, in Bascom-Quelltext mußt Du es selbst bringen. MfG Paul
Hallo Paul, danke schon mal für dein Antwort. Werde mich damit intensive beschäftigen und hoffe, dass es mir weiter helfen wird. Schade das es nicht schon fertige Codes für Bascom gitb gibt, da es sicherlich nicht neu ist, was ich suche. Mfg Eddy
Der LM317 benötigt einen Mindeststrom, die Stromquelle ist so nicht zuverlässig. Du musst vom Ausgang des LM317 nach GND noch einen Widerstand schalten, der ca. 5 -10 mA fliessen lässt. Arno
ich hab sowas ähnliches mal mit einem kty10 gemacht... ich weiß es jetzt natürlich nicht sicher, aber ich denke die differenzen zw kty10 und pt100 sind minimal... ich hab jetzt grad meine ganzen projekte durchsucht...kann den quellcode aber leider nicht mehr finden... aber soweit ich mich erinnern kann, gabs da eine ganz einfache formel, aus der sich die korrekte temperatur berechnet ;)
Hallo eddy, Die Schaltung mit dem PT100 habe ich auch angewandt, zur Temperatursteuerung eines 200W- Lötkolbens. @Arno H.: Mit dem Mindeststrom hatte ich keine Probleme, die 1mA Einstellung funktioniert im Meßbereich problemlos. Wichtig ist die negative Versorgungsspannung des LM324. Ansonsten beginnt die Anzeige erst ab ca. 40°C, weil der Ausgang dann nicht auf 0V geht. Zur Kompensation von Störungen(Lötkolbenheizung!) war noch ein kleiner Elko parallel zum PT100 hilfreich. Falls Du keine Kommastellen anzeigen willst(dazu müßte sowieso eine etwas aufwendigere Meßschaltung mit genauer Spannungsquelle usw. aufgebaut werden), kannst Du einfach nur den ADH Wert verwenden. Dann ist der AD- Wert 8Bit groß, und 5V entsprechen der Zahl 255. (Siehe Ende Kapitel 7 der PT100 Arbeit) Eine 8Bit Zahl aufs Display zu bekommen ist dann nur noch eine Grundübung. Viel Spaß dabei! ulf.
Hallo zusammen, vielen Dank schon mal für die vielen informativen Informationen. Ulf: An der LM324 habe ich +12V und GND angeschlossen. Ist es wirklich wichtig, eine negative 12V anzuschließen? Gerade die am Ende genannte Artikel mit der Umwandlung des AD-Wandler von 0-255 in Temperatur bereitet mir schwierigkeit. Bin Absoluter Neuling und weiss wirklich nicht, wie ich die Digitale Zahl nun in mein Temperatur umwandeln kann. Der Atmega8 besitz doch 10bit oder? Also wandelt der AD-Wandler intern in Zahlen von 0-1024, oder verstehe ich da etwas falsch? Wäre nett wenn jemand vielleicht ein Code oder genaue Step by step Erklärung für mich hat, wie ich das nun in Temperatur umwandeln kann. Mfg Eddy
>Der Atmega8 besitz doch 10bit oder? Also wandelt der AD-Wandler intern >in Zahlen von 0-1024, oder verstehe ich da etwas falsch? Nein. Er wandelt von 0...1023! (bei right alignment) Jetzt brauchst du eine Funktion: Temperatur = f(ADC_Wert).
Danke für die Information. Habe nun die Funktion dementsprechen umgeändert und es funktioniert. Naja, zumindest funktioniert es, wenn ich eine Spannungsquelle an ADC-Port anlege. Das Display spuckt dann die entsprechende Temperatur aus. Ich hoffe das es die richtige Temperatur ist, da es mit der PT100 noch nicht so klappt. Wenn ich die PT100 anschließe, zeigt es mir immer nur 0 Grad an. Zumindest denke ich mal, kann man die Fehlerquelle in der Software ausschließen und nur noch die Elektronik anschauen. Habe mal den Strom gemessen, der durch den PT100 fließt. Eigentlich sollte es 1mV sein, aber bei mir ist sie nahe 0 V. Woran kann es liegen? Hat es den sonst noch einen anderen Effekt, wenn ich statt die -12Van den LM324 GND anschließe? Außer das die Temperaturanzeige erst bei 40 Grad beginnt? Mfg Eddy
Brauchst du PT100 Schaltungen ? kuckst du hier Beitrag "Temperaturmessschaltung möglichst genau?" Gruss Helmi
>Habe mal den Strom gemessen, der durch den PT100 fließt. >Eigentlich sollte es 1mV sein, aber bei mir ist sie nahe 0 V. Die Aussage ist Unsinn. Spannung liegt an, Strom fließt. Wenn ich das lese: >wenn ich eine Spannungsquelle an ADC-Port anlege. vermute ich, du hast die Spannungsquelle abgeklemmt und dafür das PT100 zwischen ADC-Port und GND angeschlossen. Dann ist auch klar, dass du 0V darüber misst. Das ist nämlich nicht korrekt! Du brauchst eine (Konstant)Stromquelle, damit über dem PT100 überhaupt eine Spannung abfallen kann. Sonst kann der ADC doch nichts messen.
@Ulf (Gast): Um mit dem Irrtum aufzuräumen, ich habe am Wochenende einige Messungen zum Thema Ausgangsspannungsbereich diverser OpAmps gemacht. Ergebnis: Der LM324 bzw. LM358 kann bei asymmetrischer Versorgung ausgangsseitig sehr wohl bis 0V heruntergehen. Einzige Grundbedingung: Keine Last gegen Vcc. Bei der im PDF angegebenen Schaltung liegen alle Lasten zwischen GND und Ausgang. Damit geht es. Ein TLC272 kann immerhin sehr hochohmige Lasten zwischen Ausgang und Vcc auf nahezu 0V ziehen. Aber selbst echte Rail-to-Rail-OpAmps haben Probleme, eine Last zum entgegengesetzten Ende zu ziehen, wie ein Blick ins Datenblatt schnell offenbart. Da bleiben schnell einige 100mV stehen. Gruß Jadeclaw
in Bascom config ADC=single,Prescaler=auto,Reference=AVCC 'mit 100nF an Aref gegen Gnd und 10µH 5V gegen AVcc wie im datenblatt des Mega8 Dim wert as word '1023 werte do wert=2 'damit man sieht ob was gemessen wird wert = getadc(x)'x=portwert ADC3 x=3 lcd wert wait 1 cls loop zur temperatur spannungsteiler 5V wurde schon beschrieben! im datenblatt kanst du das gegenrechnen mit den ohmwerten und somit auf die temperatur umrechnen BSP ADC*AVCC Bsp 610*5V =3050 einen kalibrierten wert zb 2,7315V =560=adctnull=0Grad das ist der vom LM335=Liniartemperaturmesser somit ergebniss(1)=3050-adctnull=2490 =24.9Grad
Hi, ich denke das kann man viel einfacher und eleganter lösen. 1) PT100 direkt über Vorwiderstand an Spannung AVC (mit gew. stromstärke) 2) Spannung direkt am PT100 messen. Einzig Mögliche Fehlerquelle sind Schwankungen der Spannung, diese einfach rausrechnen indem mit einem zweiten Analogeingang die Spannung misst. Oder ?
@Peter Kaiser Schon mal nachgerechnet welchen Signalhub du damit erreichst ? Bei 0 Grad hast du 100 Ohm und bei 100 Grad 138.5 Ohm Den Pt100 mit 1mA gespeist ergibt: Bei 0 Grad 0.1V Bei 100 Grad 0.1385V Damit nützt du den ADC nur zu einem kleinen Teil aus. Besser verstärken und den Offset den die 100 Ohm erzeugen subtraieren. Gruss Helmi
Hi Sehe gerade, der Thread war schon 'älter' - na gut ;) Den Einwand von Peter Kaiser, darf ich den so verstehen: PT100 direkt von zwischen +5V und GND mit entsprechendem Vorwiderstand, daß 1mA fließen würde (bei 5V). Wenn die Spannung schwankt, schwankt auch der Ref-Wert im ADC und meine mehr gemessene Spannung am PT100 durch den (etwas) höheren Strom, da höhere Spannung (oder umgekehrt) würde von der ebenfalls höheren(tieferen) REF-Spannung 'aufgefressen' ?? Wobei solche Spannungsschwankungen wohl prozentual weitaus geringer ausfallen als die Aufgrund der Nichtlinearität des PT100 eh entstehenden 2% Fehler - oder ? Dann noch, kann man diese ganzen Temp-Sensoren 'einfach !!' linearisieren? Oder zumindest mit 2 / 3 Punkten 'gerade_r(!) biegen' ? (Ok, kann man bestimmt - ist es 'den Mehr-Aufwand' wert?) Oder ist es für einen zwar elektronisch interessierten aber zeitlich stark eingegrenzten 0-8-15 Bastler sinnvoller, eine 1-Chip-Lösung herzunehmen, die zwar einen recht großen Offset (laß was von bis zu 2K) aber sonst recht genau sein sollen? Ein sehr interessantes Thema, drücke mich hier echt gerne nach Feierabend rum :) MfG
>Den Einwand von Peter Kaiser, darf ich den so verstehen: >PT100 direkt von zwischen +5V und GND mit entsprechendem Vorwiderstand, >daß 1mA fließen würde (bei 5V). Ja so hat er es gemeint. Dabei nützt du aber die Auflösung des ADC nicht aus. Beitrag "Temperaturmessschaltung möglichst genau?" Gruss Helmi
Wie linearisiert Ihr denn nun? Vergleichstabelle oder rechnerisch? Anselm
Anselm wrote: > Wie linearisiert Ihr denn nun? > Vergleichstabelle oder rechnerisch? > > Anselm Kommt drauf an. 1. Frage: Muss es schnell sein (und relativ viel Speicher brauchen) oder darfs auch langsamer sein? 2. Frage: Wie genau muss das ganze sein? Beispiel: Rechnet man beim PT100 mit den Standard-Formeln den gemessenen Widerstand in eine Temperatur um, ist dies nur bei Temperaturen oberhalb von 0 °C genau, braucht man die gleiche Genauigkeit unterhalb von 0 °C "bastelt" man sich entweder ein besseres Polynom zur Berechnung oder man erstellt eine Tabelle. Bei Thermoelementen ist es ähnlich. Wie man bei der Tabellenvariante zwischen den Stützstellen interpoliert hängt letztlich auch vom Anwendungsfall ab, ausser das dort so gut wie immer eine einfache, lineare Interpolation ausreicht.
Hallo Arc Net Möchte selbst mehrere Temp-Sensoren auslesen, welche, steht eigendlich noch nicht fest (wird wohl der Preis entscheiden). Eine Genauigkeit bei 10°C-40°C von 0,1K fände ich brauchbar. Wenn man mehrere Temp-Widerstände benutzt, werden sich wohl gewisse Tolleranzen ergeben. Sind diese Tolleranzen großtteils als Offset zu Erwarten? Meine damit, wenn ich z.B. zwei PT100 nutze, daß bei 0°C der Eine 100 Ohm hat, und der Andere 100,irgendwas Ohm. Hoffe aber, daß das Verhältnis bei Temperaturänderungen bestehen bleibt. Welche Temp-Widerstände setzt Ihr ein und wie schafft Ihr es, daß die verschiedenen Sensoren das Gleiche anzeigen? Hab nämlich keine große Lust, für jeden Sensor einen Offset und einen Korrekturfaktor einzubinden.
Der wohl ahnungslose wrote: > Hallo Arc Net > Möchte selbst mehrere Temp-Sensoren auslesen, welche, steht eigendlich > noch nicht fest (wird wohl der Preis entscheiden). > Eine Genauigkeit bei 10°C-40°C von 0,1K fände ich brauchbar. > Wenn man mehrere Temp-Widerstände benutzt, werden sich wohl gewisse > Tolleranzen ergeben. > Sind diese Tolleranzen großtteils als Offset zu Erwarten? > Meine damit, wenn ich z.B. zwei PT100 nutze, daß bei 0°C der Eine 100 > Ohm hat, und der Andere 100,irgendwas Ohm. > Hoffe aber, daß das Verhältnis bei Temperaturänderungen bestehen bleibt. 1/3 DIN B PT100 zulässiger Fehler bei 0 °C 0.1 K d.h. der Widerstand darf um +-0.039082 Ohm abweichen. Bei 40 °C wären +-0.166 K zulässig ~ +-0.064364 Ohm. Einfacher Offset funktioniert nicht, ausser die somit erzielte Genauigkeit reicht aus. > Welche Temp-Widerstände setzt Ihr ein und wie schafft Ihr es, daß die > verschiedenen Sensoren das Gleiche anzeigen? PT1000, PT100, PT25 und div. Thermistoren Passende Schaltung, passende (selektierte) Sensoren/Fühler und vollständige Kalibrierung von Sensor/Fühler und Schaltung bzw. der Messkette (je nach dem was tatsächlich gefordert ist). > Hab nämlich keine große Lust, für jeden Sensor einen Offset und einen > Korrekturfaktor einzubinden. Entweder sowas http://www.ussensor.com/prod_inter_ultra.htm Austauschbarkeit +-0.05 °C zw. 0 °C und 50 °C oder PT100 1/10 DIN B Mit beiden könnte man - ohne Fehler der Schaltung bzw. Kalibrierung der Schaltung - die geforderte Genauigkeit erreichen.
Schaltung musst du meiner Meinung nach immer kalibrieren. Sei es auch nur mit einem präzisem 100 Ohm Wdst. vom grossen C die marktüblichen Widerstände 1% sind im Vergleich der PT100 riesig. p.S.: Formel Temp. aus R Korrekturwerte:
Gruß Anselm
Anselm wrote:
> Schaltung musst du meiner Meinung nach immer kalibrieren.
Die Formulierung
"Mit beiden könnte man - ohne Fehler der Schaltung bzw. Kalibrierung der
Schaltung - die geforderte Genauigkeit erreichen."
ist etwas ungeschickt geraten...
Gemeint war: "Mit beiden könnte man - ohne Berücksichtigung der Fehler
der Schaltung bzw. mit Kalibrierung der Schaltung - die geforderte
Genauigkeit erreichen."
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.