Hi, ich messe über einen NTC am AD und bekomme einen Wert (0-1023) Um daraus die Temperatur zu errechnen habe ich in Excel aus dem Datenblatt eine Grafik gemacht und mir die Gleichung rechnen lassen. Das klappt auch in Excel sehr gut. Nur wie kann ich in dem µC mit so "Wilden" zaheln rechnen? Das Ganze sieht in etwa so aus: Polynomisch y= 4,89*10^-19 *ADWERT^6 - 6,57*10^5 * ADWERT + 3,44*10^4 * ADWERT.... Ist das zu heftig für den µC? Ist ein mega169. Ich dachte eigentlich das es eine recht einfache Lösung wäre aber wohl eher doch nicht. Achja, wie rechnent man denn x^y, WinAVR mag das ^ Zeichen nicht. mfg Jabber
Muß es so genau sein? Eine linear interpolierte Tabelle oder eine geknickte Gerade reicht doch aus.
Jabber Wock wrote: > Hi, > Achja, wie rechnent man denn x^y, WinAVR mag das ^ Zeichen nicht. Kein Wunder. ^ ist der XOR Operator. Und bei double wird das dann wohl eher nicht gehen :-) Was du suchst, ist die Funktion pow( a, b ), die in math.h beheimatet ist. > Das Ganze sieht in etwa so aus: > Polynomisch > > y= 4,89*10^-19 *ADWERT^6 - 6,57*10^5 * ADWERT + 3,44*10^4 * ADWERT.... > > Ist das zu heftig für den µC? Ist ein mega169. Das ist allerdings schon etwas heftig. Mach in Excel noch ein paar Versuche, welche Potenz du weglassen kannst. 10^19 ist nun wirklich nicht viel. Wenn dieser Term also wegfallen kann, und der Fehler für dich noch akzeptabel ist, dann lass ihn weg. Denk auch daran: Ausrechnen kann man viel. Allerdings, wenn dein Sensor nicht genau genug für 1 Nachkommastelle ist, dann hat es auch keinen Sinn, 1 Nachkommastelle auszurechnen. Weiters würde ich dir noch die Horner Regel ans Herz legen: y = a * x^3 + b * x^2 + c * x kann umgeformt werden zu y = ((( a * x ) + b ) * x + c ) * x -> keine Potenzberechnung mehr. (das x wird einfach herausgehoben)
Wie hast du denn den NTC angeschlossen? Wahrscheinlich kannst Du da mit etwas mehr Aufwand (im einfachsten Fall 1 Widerstand) eine Linearisierung hinbekommmen! Schau mal hier in die Artikelsammlung unter Temperaturmessung und daraus folgender Link: http://www.sprut.de/electronic/temeratur/temp.htm Wenn du es aber mit einer potenz machen willst: die funtion lautet pow(zahl, potenz) und findet sich in "math" (sollte sie jedenfalls)
Jabber Wock wrote: > Um daraus die Temperatur zu errechnen habe ich in Excel aus dem > Datenblatt eine Grafik gemacht und mir die Gleichung rechnen lassen. Das > klappt auch in Excel sehr gut. Wie kann man sich aus einer Grafik eine Gleichung errechnen lassen? War immer der Meinung, das Excel das umgekehrt macht.... Bitte klär mich mal einer auf... nitraM
Ein sehr schönes Experimentierwerkzeug für solche Probleme ist Maxima. Das Ergebnis von Annäherungsfunktionen kann man sehr schön mit GNUplot besichtigen.
Danke für die schnellen Antworten... Ich denke ich werde das doch mit einer tabelle mache. Das sah nur auf den ersten Blick nach viel mehr arbeit aus. Aber wird dann wohl doch um eniges schnelle sein. Auch wenn es weder auf die Zeit noch eine besondere genauigkeit an kommt. Danke auf jeden fall für die Hilfe. @ Martin L Einfach eine Grafik machen und dann auf die Linie Klicken und "Trendlinie hinzufügen" klicken. Dort hast du dann verschiedene Funktionen zu auswahl unter Optionen das Häkchen bei "Gleichung anzeigen" und fertig. mfg Jabber
Wievielten Grades die Potenz sein muss ? Das haengt von der Genauigkeit ab. Du kannst nun einen Plot pro Grad machen, der den absolutwert der differenz( Exponential-Poly(GradN)) ueber den Temperaturbereich rechnet und dann auswaehlen welche Potenz du willst. Ja, ein polynon 6. Grades ist durchaus machbar, vielleicht nicht mehr millionen mal pro sekunde aber moeglicherweise genuegend oft.
Jabber Wock wrote: > Einfach eine Grafik machen und dann auf die Linie Klicken und > "Trendlinie hinzufügen" klicken. Dort hast du dann verschiedene > Funktionen zu auswahl unter Optionen das Häkchen bei "Gleichung > anzeigen" und fertig. Danke, wieder etwas gelernt... nitraM
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.