Forum: Analoge Elektronik und Schaltungstechnik Kapazitiver Feuchtesensor P14


von SamY (Gast)


Lesenswert?

Ich arbeite mit einem kapazitiven Feuchtesensor P14.
Um die Feuchtigkeit zu messen benutze ich ein einfaches RC-Glied, mit 
dem P14 als Kondensator.
Ein PWM- Signal wird an das RC-Glied gelegt und die Spannung über dem 
P14 über einen Komperator mit Ref.-Spannung von 63%*Vdd (damit die Zeit 
gleich dem Tau des RC-Gliedes ist).
Ich messe die Zeit zwischen dem high vom PWM bis zum high des 
Komperators und bekomme somit Tau.

Über C=R/Tau bekomme ich die Kapazität des Sensors.
Nun zu eigendlichen Problem:
Die relative Feuchtigkeit messen.

ich habe diese Formel bekommen:
C= k * ( A0 + A1*rH + A2*rH^2 + A3*rH^3 + A4*rH^4 )

k,A0-A4 sind gegeben und C habe ich gemessen.
Nun, wie bekomme ich jetzt rH? Kann man den überhaubt ein Polynom 
4.Grades lösen? Vielleich irgendwie Nummerisch...

Ich weiß, dass es mehr Physik und Mathe ist als analoge Elektronik, aber 
ich bitte euch mir trozdem zu helfen.
Vielen Dank!

Datenblatt des Sensors:
http://www.ist-ag.com/eh/ist-ag/resource.nsf/imgref/Download_DHP14-W_D2.2.compressed.pdf/$FILE/DHP14-W_D2.2.compressed.pdf

von ArnoR (Gast)


Lesenswert?

SamY schrieb:
> Nun, wie bekomme ich jetzt rH?

Durch Vergleich. C hast du, nun setzt du in die Gleichung einfach einen 
sinnvollen rH-Startwert ein, berechnest C und vergleichst mit dem 
gemessenen C, dann rH in der Gleichung sinnvoll ändern usw., bei 
Übereinstimmung mit gewünschter Genauigkeit abbrechen, voila.

von SamY (Gast)


Lesenswert?

@ArnoR
Ich messe alle 100us die Kapazität, jetzt noch eine Schleife einzubauen 
die bis zu 1000 - 10000 (Genauigkeit von 0,1-0,01 rH ) Werte durchkemmt 
wäre mit den ganzen anderen Funktionen die der uC machen muss, zu viel.

Aber ich behalte dies als Plan B. Danke!

von ArnoR (Gast)


Lesenswert?

SamY schrieb:
> die bis zu 1000 - 10000 (Genauigkeit von 0,1-0,01 rH ) Werte durchkemmt

Die Feuchtigkeit wird sich von Messung zu Messung nicht stark ändern, so 
dass nicht viele Rechnungen nötig sind, wenn man als Startwert den 
Abbruchwert der vorigen Rechnung nimmt.

von Arc N. (arc)


Lesenswert?

http://www.wolframalpha.com/input/?i=solve+C%3D+k+*+%28+A_0+%2B+A_1+*+r+%2B+A_2+*+r^2+%2B+A_3+*+r^3+%2B+A_4++*+r^4+%29+for+r

Liefert ein Ergebnisse...

Einfachste Variante wäre aber C für 100 (1% rH) oder 1000 (1/10 % rH) 
rHs auszurechnen und den gemessenen Wert nachschlagen.
Andere Möglichkeit in Abhängigkeit der Konstanten A_n und der 
gewünschten Genauigkeit einfach (der Graph C / rH sieht ziemlich linear 
aus) einige Terme wegzulassen.

von SamY (Gast)


Lesenswert?

@ArnoR
Du hast schon Recht.
Doch der Sensor soll in einem Klimaschrank zum Testen benutzt werden und 
man erwartet von mir eine weniger riskante und "schönere" Lösung.

Und ich benutze ach noch den Mittelwert von mehreren Zeiten bevor ich es 
in Kapazität und relative Luftfeuchtigkeit umrechne.

von SamY (Gast)


Lesenswert?

@Arc Net

Ein Ergebnis ist es XD.
Eine Tagesarbeit es nur in den Code zu schreiben.
Ich überleg mir aber wirklich es dann vielleicht ungf. so zu machen.

Das mit den weglassen muss ich nachprüfen. Wäre natürlich sehr 
hilfreich.

Das mit der Tabelle ist eine Möglichkeit, die ich aber aus den selben 
Gründen wie bei ArnoR nach hinten schieben muss.
Danke

von Arc N. (arc)


Lesenswert?

SamY schrieb:
> Das mit der Tabelle ist eine Möglichkeit, die ich aber aus den selben
> Gründen wie bei ArnoR nach hinten schieben muss.

Warum? Excel oder etwas vergleichbares berechnet die Werte für C, im 
Programm steht dann im einfachsten Fall nur ein rh = cTable[c_meas - 
c_base];

von Thomas (Gast)


Lesenswert?

Hallo,

wesentlich effizienter als einfaches Ausprobieren ist die 
Newton-Raphson-Methode. Du beginnst mit einem Startwert und näherst dich 
iterativ der gesuchten Lösung entlang des Gradienten der Funktion. Geht 
bei Polynomen in der Regel sehr gut und dürfte bereits nach wenigen 
Schritten konvergieren.
Ob sich die Methode allerdings hinreichend effizient auf einem uC 
implementieren lässt kann ich leider nicht beantworten.

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
Noch kein Account? Hier anmelden.