Hallo an alle! Ich wollte mit einem avr die temp. mit einem ntc messen. Die werte für eine Kennlinie sind vorhanden. Ist es möglich das man z.b. mehrere geraden an die "krumme" Kennlinie des ntc anlegt und diese dann in dem jeweiligen Bereich zur Berechnung benutzt? Hat jemand schon mal etwas in der Richtung gemacht? Ich habe eine pdf als Beispiel gemacht. Mir ist klar das diese Methode mit einem recht großen Fehler behaftet ist. Aber es muss nicht so genau sein. Wollte das Problem halt per Software lösen. Mfg Andy
Andy H. wrote: > Hallo an alle! > > Ich wollte mit einem avr die temp. mit einem ntc messen. > Die werte für eine Kennlinie sind vorhanden. > > Ist es möglich das man z.b. mehrere geraden an die "krumme" Kennlinie > des ntc anlegt und diese dann in dem jeweiligen Bereich zur Berechnung > benutzt? Möglich ist alles. Im PDF wurde das ja anscheinend schon gemacht. Es gibt 13 Geraden, die an die Kennlinie angelegt wurden. Berechne noch die Schnittpunkte von 2 aufeinanderfolgenden Kennlinien, damit du eine Tabelle aufstellen kannst, ab wann welche Geradengleichung gilt und dann sollte das eigentlich schon gehen.
ja genau, das wollt ich noch machen... hab nur gerade nich ganz so viel zeit weil ich noch für die klausuren lernen muss :( wie hoch ist denn der rechenaufwand bei sowas?
Andy H. wrote: > ja genau, das wollt ich noch machen... > hab nur gerade nich ganz so viel zeit weil ich noch für die klausuren > lernen muss :( > > wie hoch ist denn der rechenaufwand bei sowas? Trivial: > Berechne noch die Schnittpunkte von 2 aufeinanderfolgenden > Kennlinien, Falls du nicht weist, wie das geht: 2 Geraden schneiden sich in einem Punkt (wenn sie nicht gerade parallel sind) Es gibt also einen Punkt Xs/Ys, der auf beiden Geraden liegen muss (sonst wäre er ja kein Schnittpunkt) Für diesen Punkt gilt logischerweise: er liegt auf Gerade 1. Er erfüllt also die Gleichung Ys = m1 * Xs + n1 Aber derselbe Punkt muss logischerweise auch auf Gerade 2 liegen Ere muss also auch die Gleichung Ys = m2 * Xs + n2 erfüllen (m1, n1 sind die Koeffizienten der ersten Gerade m2, n2 sind die Koeffizienten der zweiten Gerade die hast du ja schon, sind im PDF angegeben) Jetzt hast du aber 2 Gleichungen, mit 2 Unbekannten Ys = m1 * Xs + n1 Ys = m2 * Xs + n2 (m1,n1,m2,n2 sind konstant; Xs, Ys sind die Unbekannten) und das sollte sich doch lösen lassen. zb durch Einsetzen von Ys aus Gleichung 1 in Gleichung 2 m1 * Xs + n1 = m2 * Xs + n2 m1 Xs - m2 Xs = n2 - n1 Xs( m1 - m2 ) = n2 - n1 n2 - n1 Xs = ------- m1 - m2 Das rechnest du dir mal für die Zahlenwerte von 2 Gleichgunen konkret aus und setzt das in Gleichung 1 ein Ys = m1 * Xs + n1 und erhältst so den Widerstandswert an dem von Gleichung 1 auf Gleichung 2 umgeschaltet werden muss.
Nochwas: Die im PDF angegebenen Gleichungen sind Vorwärtsgleichungen X ist die Temperatur, Y ist der Widerstandswert. Du wirst das aber wahrscheinlich in die andere Richtung brauchen. Gegeben Widerstandswert, gesucht Temperatur. oder mathematisch ausgedrückt: Die Gleichung Y = m * X + n nach X auflösen.
ja super... danke für die Antwort. Werde das in den Ferien mal ausgiebig testen.
Hallo Eine andere Möglichkeit.
1 | #define NTC_RN 33000.0
|
2 | #define NTC_RV 100000.0
|
3 | #define NTC_A1 0.003354016
|
4 | #define NTC_B1 0.0002519110
|
5 | #define NTC_C1 0.00000351094
|
6 | #define NTC_D1 0.000000110518
|
7 | |
8 | get_TemperaturV(float & val) |
9 | {
|
10 | float ohm, tmp , tcelsius ; |
11 | |
12 | ohm = get_Ohm( ADC(ONE) ); |
13 | 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)); |
14 | tcelsius = (tmp - 273.15); |
15 | val = (tcelsius); |
16 | return true; |
17 | }
|
18 | |
19 | get_Ohm(float val) |
20 | {
|
21 | float ohm; |
22 | |
23 | if ( val < 1 ) |
24 | {
|
25 | val = 1; |
26 | }
|
27 | ohm = NTC_RV/(1024.0/val-1); |
28 | return (ohm); |
29 | }
|
NTC_RV = Vorwiderstand (z.B. 100K) NTC_RN = NTC Widerstand bei 25°C (z.B. 33K) NTC_A1 , NTC_B1 , NTC_C1 , NTC_D1 = Materialkonstanten (Datasheet Vishay) gruss
Ich habe leider kein gutes Datenblatt für diesen NTC. Also fehlen mir auch diese Konstanten. Es ist ein Öltemp.fühler von VDO in peilstabform. gibt leider kaum Informationen über die Sensoren. Ich hab die Sache mit den Geraden gestern mal simuliert, als Konsolenanwendung :) klappt ganz gut. trotzdem danke
von Infineon gibts das: NTC Thermistors Standardized R/T characteristics http://www.epcos.com/web/generator/Web/Sections/ProductCatalog/NonlinearResistors/NTCThermistors/PDF/PDF__Standardized,property=Data__en.pdf;/PDF_Standardized.pdf elend lange URL, und die angegebenen Formeln sehen auch nicht sehr hilfreich aus.
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.