Anzeige:

Temperaturmessung über Atmega 16

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

Temperaturmessung über Atmega 16

Von niki1 am 29.12.2008 23:38

Hallo

ich habe mit der Bascom Programmierung von Avr's seit 2 Tagen begonnen.

Und wollte euch Fragen wie ich mit dem ADC vom Atmega 16 einen Ntc am besten auslesen kann(über einen Spannungsteiler ?)? Ich will die Temperatur messen und dann über einen Text-Lcd (HD44780) ausgeben.

Nun mein erstes Problem ist einmal, mit dem NTC .

Denn das Datenblatt von www.conrad.at ist katastrophal. Sucht mal unter der Artikelnummer 467243. Welche Spalte muss ich da nehmen?
Und gibt es dafür keine allgemeine Formel?

mfg niki1

Von BellaD am 30.12.2008 11:42

moin


du suchst dir im Datenblatt den passenden Typ raus Wink

M87 = G 350 5 K bedeutet 5 kiloohm bei 25% C
also ist für dich die RT/Kennlinie 8010 interessant
da schauen wir jetzt mal drauf und sehen links die Temperaturwerte in °C
in der Spalte 8010 steht unter RT/R25 das Verhältnis der Widerstandsänderung zur Grundtemperatur 25°C - siehe Zeile 25° ,da steht unter RT/R25 = 1.000 - das bedeutet das bei 25 ° der Widerstand des NTC
5k*1 = 5k beträgt.
Du müsstest jetzt eine Tabelle anlegen wo du für die Temperaturen die Faktoren hinterlegst um dann in Bascom deine Temperatur auszurechnen.

Da der ADC nur positive Spannungen mit 10 Bit (1023Schritte)digitalisieren kann, kannst du mit dem NTC als Spannungsteiler geschaltet, nur Temperaturen in einem kleinen Bereich mit hoher Auflösung oder grossem Bereich mit grober Auflösung messen.

Beacht das die max. Eingangsspannung des ADC 5V beträgt (je nach gewählter Referenzsp. auch weniger ).

Den Spannungsteiler kannst du so berechnen das bei der zu messenden mind. Temp. zB.10°C die Spannung am ADC 1Volt beträgt und bei 40° dann halt .....
Den dafür erforderlichen R kannst du nach R=U/I errechnen wobei der Strom durch den Spannungsteiler ca. 1mA betragen sollte um eine Eigenerwärmung möglichst gering zu halten.

Von niki1 am 01.01.2009 14:35

Hallo.

Ersteinmal ein gesundes und erfülltes neues JAHR 2009.

Also so wie ich das verstanden habe kann ich mit diesen 10 Bit Auflösung einen Werte Bereich von 0°C bis 1023°C nur in 1°C Schritten darstellen, oder?
Somit könnte ich dann einen Wertebereich von -40°C bis 100°C locker mit hoher Auflösung darstellen oder?

Zitat:
Den Spannungsteiler kannst du so berechnen das bei der zu messenden mind. Temp. zB.10°C die Spannung am ADC 1Volt beträgt und bei 40° dann halt .....


Wieso muss ich den Spannungsteiler so dimensionieren dass bei meiner tiefst zumessenden Temperatur 1 Volt am Eingang von ADC ist?
Das heißt ich müsste dann so dimensionieren dass bei der Höchst zumessenden Temperatur der Strom so gering ist das er sich nicht auf meine Messchaltung auswirkt.

Mfg niki1

Von kalledom am 01.01.2009 16:20

niki1 hat folgendes geschrieben:
Somit könnte ich dann einen Wertebereich von -40°C bis 100°C locker mit hoher Auflösung darstellen oder?
Wenn Du -40 bis +100°C messen möchtest, dann ist das ein Bereich von 140°C. Dazu hast Du maximal 5V zu Verfügung, was eine Auflösung von 5000mV / 140°C = 35,7mV ergibt.
Der Spannungsteiler muß so ausgelegt sein, daß bei 0V = -40°C und bei 5V = +100°C angezeigt werden.

Die Auflösung der 5V bei 10 Bit beträgt: 5000mV / 1024 = 4,88mV.
Für eine Anzeige in 0,1°C-Schritten müßte die Ausflösung 3,57mV betragen, bei 10 Bit sind aber nur 4,88mV möglich.

Von niki1 am 01.01.2009 17:02

Hallo.

Danke für die ausführliche Erklärung.

Da dass mit der Auflösung von 0,1 °C nicht klappt habe ich den Messbereich geändert und auf -20°C bis +50°C ausgelegt.

Somit wäre das mit dieser Auflösung lösbar.

Jedoch hänge ich irgendwie bei der Dimensionierung des Spannungsteilers, kommt es mir nur so vor oder wird das nicht so einfach mit einem in Serie geschalteten Widerstand?

Mfg niki1

Von kalledom am 01.01.2009 22:51

niki1 hat folgendes geschrieben:
.... kommt es mir nur so vor oder wird das nicht so einfach mit einem in Serie geschalteten Widerstand?
Mit einem einfachen Spannungsteiler geht das nicht.
Da Du keinen passenden Widerstand für den Spannungsteiler finden wirst und die Spannung bei -20°C bis +50°C auch nicht 0...5V betragen wird, mußt Du einen Operations-Verstärker mit einstellbarer Verstärkung einsetzen, der am Ausgang (fast) 0....5V liefert, was durch eine asymmetrische Versorgung mit 5V erreicht wird.
Außerdem mußt Du den Temperatur-Bereich, also den Nullpunkt, verschieben können; das kannst Du mit dem gleichen Operations-Verstärker erledigen.

Edit: Ich würde von einem Spannungsbereich 0,5...4,5V am Ausgang des OpAmp ausgehen.
Das ergibt bei 10 Bit-Auflösung: 4,0V / 4,88mV = 820 Stufen.
Bei 0,1°C Genauigkeit kann somit ein Temperatur-Bereich von 82,0°C abgedeckt werden. Das wäre z.B. von -20,0°C bis +62,0°C.

Von niki1 am 02.01.2009 17:10

Hallo.

Heißt dass das ich einen nicht inv. Verstärker mit assymetrischer Versorgung brauche?

Und an den (-) Eingang hänge ich einfach eine Spannung an , um den 0 Punkt zu verschieben?

Mfg niki1

Von kalledom am 03.01.2009 12:42

So ähnlich ....
Je nachdem wie rum der Spannungsteiler mit dem Temperatur-Sensor an GND und Plus angeschlossen wird, kannst Du auch einen Invertierer nehmen.
Vom Ausgang zum (-) Eingang ein Poti für die Verstärkung nicht vergessen.

Schau mal bei http://www.domnick-elektronik.de/elekovg.htm unter "Schaltungen mit asymmetrischer Spannungsversorgung".

Von niki1 am 05.01.2009 18:20

Hallo.

Also ich kann mir das jetzt beim besten Willen nicht vorstellen.

Kannst du mir vielleicht einen Schaltplan erstellen ?

Mfg niki1

Von kalledom am 05.01.2009 18:48

Vielleicht kommst Du mit folgenden Plänen weiter.

DM steht für Dehnungs-Meßstreifen und kann durch den Temp-Sensor ersetzt werden. Einige Werte der Brücke R2...R5 müssen dann geändert werden.
Alternativ kannst Du IC1A einfach nur als Impedanzwandler benutzen.

Oder nimm die andere Schaltung. Statt des blauen Rechtecks den Temp-Sensor dort einsetzen.

Anzeige: