Hallo! Ich möchte eine Temperaturmessung mit einem NTC realisieren. Der NTC wird an einem Kühlkörper befestigt (angeschraubt) und soll dessen Temperatur messen (muss nicht sehr genau sein). Folgende Schaltung habe ich mir überlegt: (+5V) ^ | | | --- | | (Widerstand, 1k) --- | |------- (Messspannung?) | --- | | (NTC, 50Ohm) --- | | _ (GND) Würde das so funktionieren? Mit welchen Messpannungen kann ich rechnen (z.B. Spannug bei 20°C und bei 50C°). MfG Thomas
Wenn Du weisst, welchen Widerstand der NTC bei 20°C sowie bei 50°C hat (-> Datenblatt), lässt sich die Spannung relativ leicht berechnen: Messspannung = 5V * R_NTC / (R_NTC + 1 kOhm)
hi, ich geh mal davon aus dass die von dir angegbenen 50 Ohm des NTC´s bei 20°C gelten dafür ergibt sich somit eine Spannung von ca. 0,24V. Um hin gegen die Spannung bei 50°C zu berechnen mußt du her gehen und Dir den Widerstand des NTC´s bei 50°C aus rechnen und damit dann Spannung. Aber Grundlegen funktioniert die Schaltung (aber nicht sonderlich genau!!) Gruß Alex
Du musst halt auch bedenken dass der NTC eine stark nichlineare Kennlinie hat.
Wobei man die ganz leicht mit einem µC linearisieren kann. Mit einem billigst NTC hat man etwa 5% Genauigkeit, was schon nicht schlecht ist. Bessere erreichen bis 1%.
Hallo! Leider hab ich kein Datenblatt für diesen NTC. Allerdings habe ich den Widerstand im Keller nachgemessen und das Multimeter zeigte mir 51 Ohm an. Laut Thermometer hatte es im Keller um die 20 Grad. Ich werde mal den Vorwiderstand verkleinern, damit ich eine höhere Messpannung bekomme. Allerdigns habe ich Angst, dass der NTC sich dann durch Eigenerwärmung stark niederohmig macht. Was haltet ihr von um die 500 Ohm? Thomas
Wenn Du nur ein Meßgerät verwendest und keinen µC (der braucht GND) könntest Du auch eine Wheatston Brückenschaltung verwenden. Damit kannst Du die Wiederstandsänderungen besser messen.
Hallo! Wie schon geschrieben, ich habe nur diesen NTC zur Verfügung, und der hat nun mal 50Ohm. Den Messwert bekommt ein AtMega32.
Hallo, wenn Du es unbedingt mit dem Teil probieren willst, würde ich eventuell so ansetzen: Stabile kleinere Spannung basteln, mit vorhandenen Mitteln z.B. rote LED, gibt ca. 1,6V. Brückenschaltung, den NTC in die obere Seite (zu den 1,6V). Unten den Widerstand so wählen, daß der Strom nicht unnötig hoch wird (Eigenerwärmung) und andererseits der Spannungsabfall über dem NTC noch brauchbar ist. 2. Brückenzweig identisch, statt NTC eben 51 Ohm. Dann den ADC des Mega im Differential-Mode da ran und Verstärkung auf 10x, ob 200x noch SInn macht, müßte man ausrechnen/ausprobieren. Gruß aus Berlin Michael
Oder viel einfacher und genauer: Irgendwie (z.B. über einen Vorwiderstand) einen Spannung von 1-2V erzeugen, diese als Referenz für den ADC verwenden. Davon auch über einen 50-100 Ohm Widerstand auf den NTC gehen. Vorteil von dem ganzen: Der Absolutwert der Spannung ist egal, da der ADC die Eingangsspannung relativ zur Referenzspannung misst. Wenn der Spannungsteilerwiderstand der vor den NTC geschaltet wird so gewählt wird, dass in der Mitte des interessanten Messbereichs etwa halbe Spannung anliegt, dann ist die Auflösung eines 10bit ADCs um einiges besser (<1°C) als die Genauigkeit (etwa +/-5°C).
Hallo, Vref min beim Mega32 ist 2 Volt. Außerdem wäre mir der Strom durch den NTC so zu hoch. Deshalb mein Vorschlag, Differental-Messung mit Brücke. Die Spannungen wäre so in einem sinnvollen Bereich und der Strom könnte klein genug sein. Irgendwie kalibrieren muß er den Kram sowieso, wenn die Schaltung auf gleicher Temperatur wie der NTC ist, korrigiert sich das dann sowieso alles mit raus. Ging ja nur um die Nutzung seiner vorhandenen Mittel, ich würde keinen 50 Ohm NTC unbekannter Herkunft nehmen, aber können kann man schon. ;) Gruß aus Berlin Michael
Hallo, Ich habe vor einiger zeit auch mit NTCs rumgemacht. Im Anhang eine Simulation mit SwCad. Die A,B,C und D Werte sind aus dem Datenblatt vom NTC. Bei meiner Applikation (Atmega 329) wird die Temperatur mit dieser Formel berechnet.
1 | bool TEMPERATUR::get_TemperaturV(float & val) |
2 | {
|
3 | float ohm, tmp , tcelsius ; |
4 | |
5 | if(!init_ok) return false; |
6 | PORTF |= (1 << PF6); |
7 | DDRF |= (1 << DDF6); |
8 | …. |
9 | …
|
10 | ohm = get_Ohm(ReadByte(SINGLE)); |
11 | …
|
12 | …
|
13 | PORTF &= ~(1 << PF6); |
14 | DDRF &= ~(1 << DDF6); |
15 | tmp =1/( NTC_A1+NTC_B1*log(ohm/NTC_RN)+NTC_C1*pow(log(ohm/NTC_RN),2)+NTC_D1*pow(log(ohm/NTC_RN),3)); |
16 | tcelsius = (tmp - 273.15); |
17 | val = (tcelsius); |
18 | return true; |
19 | }
|
20 | |
21 | float TEMPERATUR::get_Ohm(float val) |
22 | {
|
23 | float ohm; |
24 | |
25 | if ( val < 1 ) |
26 | {
|
27 | val = 1; |
28 | }
|
29 | ohm = NTC_RV/(1024.0/val-1); |
30 | return (ohm); |
31 | }
|
Der Zeitaufwand für die Berechnung hält sich in grenzen (ist natülich subjektiv).
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.