Forum: Mikrocontroller und Digitale Elektronik Kondensatorgröße messen


von Alex K (Gast)


Lesenswert?

Hi,
wie kann ich einen Kondensator ziemlich exakt mit dem µC messen lassen?
Ich hab nämlich einen Feuchtesensor, und der ist ein variabler
Kondensator. Andere Sensoren (~1µF) lass ich über ne Astabile Kippstufe
mit einem NE555 ausmessen, der ein Rechtecksignal je nach
Kondensatorgröße erzeugt. Nur ist mein Problem, dass der Feuchtesensor
im Bereich von 120pF und 180pF liegt, und der NE555 ist eben zu ungenau
um so kleine Werte zu "messen". Ich hab auch schon das hier gefunden:
http://www.mikrocontroller.net/forum/read-1-85196.htm nur das hilft mir
nicht wirklich weiter.
Ich hab 'nen 8515, und der sollte laut Beschreibung einen
Analog-Komparator haben. Nur hab ich noch nie mit dem gearbeitet, und
weiß deshalb auch nicht, wie ich den per Code ansprechen und auswerten
lassen kann. Hat mir also jemand zufällig eine Idee und ein bisschen
asm-Code, wie ich den Analog-Komparator bedienen kann?

thx

von Simon Küppers (Gast)


Lesenswert?

Guck mal hier:
http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial#Messen_eines_Widerstandes

Wenn du den Widerstand fest dimensionierst, kannst du den Kondensator
messen.

von Gerhard Gunzelmann (Gast)


Lesenswert?

Sponatn fallen mir 3 Methoden ein:

- mit Hilfe eines Oszillators (RC): Frequenzmessung
- Ladezeit messen beim Anlegen eines Konstantstromes
- Sinusschwingung an RC Reihenschaltung und Signalpegel am R messen

Umsetzung:
Bequem geht das mit dem 1. Vorschlag: XR2206 VCO aufbauen, den Cx
anschließen und die Frequenz messen. dafür brauchz man aber ein solches
IC. Vorschlag 2 erfordert einen schnellen Timer, besonders bei kleinen
Kapazitäten. Vorschlag 3 ist unangenehem, da man hier entweder den
Sptzenwert der Sinusschwingung oder den Effektivwert mißt. Also ich
würde mich an Vorschlag 2 machen.
Formel: U = I*t/C

Gerhard

von Marko B. (Gast)


Lesenswert?


von Alex K (Gast)


Lesenswert?

Also praktisch so:

        |------------------|
        |                  |(A)
        |                  -------
        |                  |    .-.
        |                  |    | | R = 10M
        |                  |    | |
        |                  |    '-'
        |                  |(B)  |
        |       uC         -------
        |                  |     |
        |                  |    ---
        |                  |    --- Cx
        |                  |     |
        |                  |     |
        |                  |    ===
        |                  |    GND
        |                  |
        |                  |
        |------------------|

A ist Ausgang: einschalten, B mit Interrupt (D2) verbinden und auf
Interrupt warten?
Müsste das so gehen?

Dann wäre ja U*C/I=t bei I=U/R ==> R*C=t bei R=10M und C=150pF =>
0,0015 sec. Müsste sich ja eigentlich gut auslesen lassen.

Aber funktioniert das überhaupt so, wie ich oben gedacht habe?

thx

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo Alex

grundsätzlich ja. Nur ist der Strom bei der Schaltung nicht konstant.
Damit ist die Ladekurve keine Gerade. Aber nach "Ladezeit = 5 Tau"
und Tau = R*C kann man das annähernd so berechnen. Fehler müßte man mal
berechnen. Aber sonst wäre das eine billige Lösung.

Gerhard

von Gerhard Gunzelmann (Gast)


Lesenswert?

Ach ja und nochwas: Besser wäre es vermutlich einen Komparator zum
Erfassen der Spannung am C zu verwenden, genauer gesagt ein C-MOS
Komparator, damit Ströme aus dem IC, wie vermutlich auch aus dem uC
sonst die Messung negativ beeinflussen.

Gerhard

von Alex K (Gast)


Lesenswert?

Was denkst du, wie groß wäre der Fehler in etwa bei einem so kleinen
Konensator? (~150pF)

von Simon Küppers (Gast)


Angehängte Dateien:

Lesenswert?

Hm. Die Sache mit dem Konstantstrom ist durchaus nachvollziehbar. Was
haltet ihr hiervon?

von Gerhard Gunzelmann (Gast)


Lesenswert?

Den Fehler, den man über die Konstant-Spannungsaufladung macht kann man
wohl gleich in die Berechnung einbeziehen. Im Moment fällt mir nichts
ein, warum der Fehler von der Größe des Kondesators abhängig sein
könnte. Also es muß sichergestellt sein, daß zu Beginn der Messung der
Kondesator leer ist, dann unterstell ich, daß aus dem
Mess-Komparator-Eingang kein Strom herauskommt, dann ist Deine
Messungenaugkeit nur noch von Deinem uC anhängig (Auflösung). Du mißt
dann bei einer Spannung von 5,0 Volt am Ausgang des uC bis zu einer
Spannung von sagen wir mal 4,0 Volt. Da würd ich mal eine Genauigkeit
von besser 3% annehmen.

Gerhard

von Gerhard Gunzelmann (Gast)


Lesenswert?

@Simon

da fließt aber kein Konstantstrom.


Gerhard

von Gerhard Gunzelmann (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang ist eine Konstantstromquelle, die ist aber leider nicht
temperaturstabil - aber mal so als Beispiel

Gerhard

von Simon Küppers (Gast)


Lesenswert?

Wieso fließt da kein Konstantstrom?
Durch den Basisstrom(Begrenzt durch Basiswiderstand) *
Verstärkungsfaktor fließt ein bestimmte Strom durch Uce

von peter dannegger (Gast)


Lesenswert?

Das mit dem Konstanstrom ist absoluter Bullshit !

Die Aufladezeit bis zu einer bestimmten Spannung ist völlig linear zur
Kapazität.


Im Gegenteil:

Bei Aufladung über einen Widerstand und 2 Widerständen als
Spannungsteiler am anderen Komparatoranschluß ist die Messung sogar
unabhängig von Temperaturschwankungen der VCC.

Die AVR-Bauer haben da schon mitgedacht und deshalb kann der Komparator
direkt den Captureinterrupt (= Zeitmeßinterrupt) ansteuern.


Peter

von Gerhard Gunzelmann (Gast)


Lesenswert?

@Simon: Wie berechnest Du den Basiswiderstand für einen Emitterstrom von
etwa 1uA ? Theoretisch hast Du natürlich recht. Mit einem
Basiswiderstand kann man den Kollektorstrom beeinflussen, aber ob das
für einen Konstantstrom reicht - und das thermisch stabil ?

gerhard

von Kupfer Michi (Gast)


Lesenswert?

Transistor-LED-Konstant-Stromquelle:
http://www.elektronik-kompendium.de/public/schaerer/currled.htm

Der Transistor-LED- und der FET-Konstantstromzweipol:
http://www.elektronik-kompendium.de/public/schaerer/curr2pol.htm

(Hab gerade eben zufällig ein paar von den Dingern auf Vorrat fürs
Steckbrett gemacht. Den FET-Konstantstromzweipol kann man vergessen,
viel zu weiche Stromregelung)

Aber wie Peter schon bemerkte für eine C-Meter braucht man keine
Konstantstromquelle.

von gerd (Gast)


Lesenswert?

Jetzt bin ich aber mal gespannt, ob das geht! Nach meiner überschlägigen
Rechnung ist ein 150pF-Kondensator mit einem einzigen mA
(Konstant-)Strom in etwa 375 Nanosekunden auf die halbe
Betriebsspannung aufgeladen. Bin gespannt, wie der Zeitloop aussieht,
der das misst!

mfg
gerd

von A.K. (Gast)


Lesenswert?

Bin insgesamt gespannt was die Genaugkeit angeht. Wenn das nicht bloss
eine Daumenpeilung werden soll, dann sollten ja die parasitären
Kapazitäten, die rund im den Kondensator auch noch mitmischen,
allenfalls im einstelligen pF-Breich liegen. Wobei der Analog
Comparator Pin vom µC schon mal selbst mit max 10pF dazu beiträgt.

Wenn also der Aufwand sich in Grenzen halten sollte, dann wird's wohl
ohne rechnerische Kompensation des solcherart inhärenten Messfehlers
kaum abgehen. Sprich: Test und Kalibrierung im gesamten Temperatur- und
Feuchtebereich in dem das arbeiten soll.

von peter dannegger (Gast)


Lesenswert?

@A.K.

eine 3-stellige Genauigkeit ist ohne weiteres drin.

Zum Abgleich brauchst Du nur einen möglichst genauen Kondensator.

Und den Nullpunkt abzuziehen kostet in Software nur ne simple
Subtraktion.


Peter

von A.K. (Gast)


Lesenswert?

Dreistellig, also auf 0,x%, <1pF? Wie genau und konstant sind solche
parsitären Kapazitäten (z.B. die Leiterbahnen auf der Platine) über den
Temperatur- und Feuchtebereich in dem die Schaltung messen soll und in
dem sie selbst sich befindet?

von A.K. (Gast)


Lesenswert?

Wo wir grad bei Parasiten sind... Wenn der AVR eine 3-stellige
Zeitmessung vornehmen soll, dann muss sollte die Messdauer ja wohl
mindestens einige zig µsec betragen. Ich kriege dabei einen Widerstand
in der Grössenordnung von einem halben MOhm raus. Nun haben µC Pins
nicht bloss parasitäre Kapazitäten sondern auch Leckströme. 1µA max
laut Datasheet. 0.5MOhm und 1µA...

von peter dannegger (Gast)


Lesenswert?

Die Feuchte spielt überhaupt keine Rolle, solange natürlich nicht der
Leckstrom des Kondensators zu hoch wird.
Bei einem Ladewiderstand von 1MOhm sollte der Kondensator etwa >1GOhm
haben.

Um Temperaturschwankungen gering zu halten, sollte der Ladewiderstand
einen möglichst geringen TK haben.


Peter

von Sven (Gast)


Lesenswert?

Also A.K haut ganz schön auf die Tüte. Eine Genaugigkeit (nicht
Auflösung) von 3 Stellen ist wahrscheinlich gar nicht nötig, weil (die
meisten) kapazitiven Feuchteensoren eh ziemlich ungenau sind. Die
Temperatur muss sowieso zwingend mitgemessen werden, da die Kapazität
des Sensors und die relative Feuchte temperaturabhängig sind und
korrigiert werden müssen.

Ein Blick ins Datenblatt sagt, der AnalogKomperator des 8515 hat einen
Leckstrom von 50n(nano)A, das entspricht bei 5V einen
Eingangswiderstand von 100M(mega)Ohm.

Trotzdem würde ich die Schaltung mit einem externen Komperator
aufbauen. Nimm die CMOS-Variante des 555 => ICM7555 von MAXIM hat
Eingangsströme im pA-Bereich und kann Kondensatoren im 10pF-Bereich
noch handeln. Am kontinuierlich erzeugten Takt über den Zähler des 8515
die Frequenz messen sollte dann kein Problem sein. Die Versorgung des
555 muss gut stabilisiert und gepuffert sein.

Sven

von A.K. (Gast)


Lesenswert?

Die 3 Stellen waren ja nicht meine Idee, ich hab da bloss Peter etwas
Kontra gegeben ;-). Dass für den Komparator andere Werte gelten hatte
ich übersehen, danke.

von gerd (Gast)


Lesenswert?

Bei Kapazitäten im 100pF-Bereich neige ich eher dazu, einen sauberen
LC-HF-Oszillator im MHz-Bereich zu empfehlen als so ein Digitalmonster
von 555. Die Diagramme im Data sheet gehen alle nur bis 10
mikrosekunden, und das dürfte dann doch eineinhalb Größenordnungen zu
langsam sein für das Lade/Vergleich/Entlade-Prinzip vom 555.

mfg
gerd

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.