Messgerät für Kapazität und Induktivität

mit PIC16F84


zurück zu Projekte , PIC-Prozessoren , Elektronik , Homepage


Allgemeines

nutzbarer Messbereich Toleranz / Fehler
Kapazität: 0,01 pF .. ~2 µF 
(keine ELKOs)
< 5%
Induktivität: 0,01 µH .. 100 mH 
(obere Grenze ja nach Güte)
< 5% .. 10%
(wer ELKOS ausmessen will, sollte mal hier nachschauen)

HINWEIS:

Bitte darauf achten, das das Relais K1 eine Freilaufdiode enthält, oder eine externe Diode parallel zur Relaiswicklung (Kathode an +5V, Anode an RB4) anlöten. Ansonsten könnte das IO-Port-Pin RB4 des PIC zerstört werden.


Einleitung

Dieses Messgerät habe ich mir nicht selber ausgedacht. Vielmehr habe ich im Internet nach einem geeigneten LC-Meter gesucht, und bin vielfach fündig geworden. Ich fand dort Bauanleitungen für mehrere LC-Meter, die alle sehr ähnlich aufgebaut waren und sich nur im Typ des eingesetzten Prozessors unterschieden. Da man nicht alles neu erfinden sollte, habe ich eines der Messgeräte fast unverändert nachbebaut. 99% des eingesetzten Programmcodes stammen also nicht von mir, und die Schaltung wurde nur leicht verändert, um sie an die bei mir schon vorhandenen Bauteile anzupassen.

Wem ich nun genau für die Entwicklung dieses LC-Meters danken soll, weiss ich nicht, da die Urheberschaft nicht ohne weiteres nachvollziehbar ist. Auf jeden Fall handelt es sich um eines der besten Nachbauprojekte, die ich je gefunden habe, da es das Gerät erlaubt, mit geringem Aufwand Induktivitäten und Kapazitäten recht präzise zu ermitteln. Gerade wenn man sich mit Schaltreglern befasst, ist ein Induktivitätsmessgerät unablässig, und normale Digitalmultimeter haben keinen Induktivitätsmessbereich.


Prinzip des LC-Meters
Mit einem Komparator LM311, einer 68-µH-Spule und einem 680-pF-Kondensator ist ein LC-Oszillator aufgebaut. Seine Schwingfrequenz wird mit dem Timer des  PIC16F84 gemessen. Sie entspricht dabei der nebenstehenden Formel und hängt also von der Größe des Kondensators C und der Spule L ab.
Ein zum 680-pF-Kondensator parallel geschalteter unbekannter Kondensator Cx verringert die Schwingfrequenz. Der PIC misst die verringerte Frequenz, und errechnet die Größe des unbekannten Kondensators.
Ein zur 68-µH-Spule in Reihe geschaltete unbekannte Induktivität Lx verringert die Schwingfrequenz. Der PIC misst die verringerte Frequenz, und errechnet die Größe der unbekannten Induktivität.
 

Damit diese Berechnungen genau sind, ist es erforderlich, die genauen Werte von L und C zu kennen.
An dieser Stelle hat der ursprüngliche Entwickler dieses LC-Meters einen sehr gute Idee gehabt. Er kalibriert das Messgerät, indem er mit einem Relais einen eng tolerierten Kondensator von 1,02nF parallel zum Kondensator C schaltet. Dabei verändert sich natürlich auch die Schwingfrequenz.
Die Verstimmung der Frequenz ist um so größer, je kleiner C im Vergleich zu den 1,02nF ist. Daraus lässt sich die Größe von C errechnen.
Ist C  nun bekannt, lässt sich auch die Größe von L ermitteln.
Die Präzision, mit der L und C bestimmt werden können hängt nur von der Genauigkeit des Kalibrierkondensators (1,02nF) ab. Hier habe ich einen eng-tolerierten Styroflex-Typ (<2%) eingesetzt.
Da nun die realen Werte von L und C recht genau bestimmt worden sind, kann man aus der Verstimmung durch einen unbekannten Kondensator Cx oder einer unbekannten Spule Lx deren Kapazität bzw. Induktivität recht genau berechnen. 
In den nebenstehenden Formeln ist f2 jeweils die durch Cx bzw. Lx verstimmte Oszillatorfrequenz. (und nicht die aus der Kalibrierung mit dem 1,02nF-Kondensator).


mechanischer Aufbau
 
In der Regel sehen die Nachbauanleitungen vor, das Gerät als Handgerät aufzubauen. Ich bevorzuge aber eine etwas größere Bauweise, dadurch kann ich verschiedene Geräte am Arbeitsplatz übereinander stapeln.

Induktivitäten werden zwischen die linke  und die mittlere Buchse angeschlossen. Kondensatoren schließt man zwischen der mittleren und der rechten Buchse an. 
Der grüne und der rote Schalter schalten in die Cx bzw. Lx Betriebsart. Der schwarze Taster nullt die Anzeige, d.h. er entfernt einen eventuell vorhandenen Offset. Auch kann mit ihm einen erneute Kalibrierung gestartet werden.

Die Verkabelung zu den Buchsen ist noch nicht ideal, insbesondere nicht für kleinste Induktivitäten und Kapazitäten. Die automatische Kalibrierung eliminiert aber den Einfluss der Anschlussleitungen.

Zur Stromversorgung habe ich einen 9V-Block eingesetzt. Bei einer Stromaufnahme von ca. 10 mA sollte die Batterie viele Betriebsstunden lang durchhalten. Der Einfachheit halber ist die Batterie mit Klebeband am Geräteboden befestigt.

Der Kontrast des LCD-Displays wird am 10kOhm-Potentiometer auf der Platine eingestellt.


nötige Dateien und Aufbauhinweise

Eigentlich wollte ich aus  oben genannten Gründen auf dieser Seite weder die Schaltung noch das PIC-Programm veröffentlichen (mein Anteil darann ist ja recht klein), nach einigen eMails habe ich mich nun doch überreden lassen:

Alternativ biete ich hier noch eine Version der Software an, die für einen Referenzkondensator von genau 1nF ausgelegt ist


Als Anzeige ist ein LCD-Dotmatrix-Display mit 2 Zeilen a 16 Zeichen vorgesehen. Notfalls kann man auch ein 1x16-Display verwenden, dann muss aber ein anderes HEX-File verwendet werden. Dieses HEX-File ist im Download-ZIP-File mit enthalten.

Der 1,02nF-Referenz-Kondensator

Die Genauigkeit der Messung hängt von der Genauigkeit des Referenzkondensators ab. Dieser muss möglichst genau 1,02nF betragen. Da es so einen krummen Wert nicht zu kaufen gibt, muss man ihn sich aus Einzelwerten zusammensetzen. Ich habe im Layout drei Einbauplätze (C4, C9, C10) für Kondensatoren vorgesehen, die zusammen 1020 pF betragen sollten. Ich empfehle einen 1000 pF (C9) und einen 20 pF (C10) Kondensator. Der Einbauplatz C4 wird dann nicht benötigt, und bleibt frei.
Die Kondensatoren sollten natürlich möglichst kleine Toleranzen haben. Für den 1000pF-Typ kommt z.B. in Frage:

Für den 20pF-Typ kommt in Frage: Natürlich ist die Präzision des 1000pF Kondensators 50 mal wichtiger als die Präzision des 20 pF Kondensators.
 

Relais:

Das Relais schaltet während der Kalibrierung den Referenzkondensator in die Schaltung. Um dessen Wert nicht zu verfälschen sollte es eine geringe Eigenkapazität haben. Ein kleines Reedrelais ist deshalb ideal. Ich steuere das Relais direkt mit dem PIC an, ohne einen Treibertransistor zu verwenden. Deshalb ist ein 5V-Relais mit einem Spulenwiderstand von ca. 500 Ohm zu verwenden. Die ebenfalls am Markt befindlichen 200 Ohm Relais sind nicht geeignet, da sie mehr Spulenstrom benötigen als der PIC liefern kann.
Beim Abschalten des Relais treten Induktionsspitzen auf, die den PIC gefährden können. Deshalb muss das Relais intern eine Freilaufdiode haben. Geeignete Relaistypen sind z.B.:

Erläuterungen zum Stromlaufplan:

Neben der Platine werden einige weitere Bauteile benötigt, die (bis auf die Batterie) entsprechend diesem Stromlauplan in der Frontplatte montiert werden:

Auf der Platine befinden sich eine Reihe von Anschlusspunkten, die wie folgt zu benutzen sind:

S1A/S1B
An diese Anschlüsse wird ein rastender Druckschalter (Öffner) angeschlossen, der beide Pins in Ruhestellung verbindet.
Der Schalter wird mit L beschriftet. In Arbeitsstellung  (L-Messung) öffnet der Schalter.
Dieser Schalter hat einen zweiten Kontaktsatz (Schließer), der mit den Pins T13 ('GND) und T10 (RB5) der Modeumschaltung verbunden ist (siehe unten).

S2A/X1
nicht verwendet

X2
An diesen Anschluss kommt die mittlere Bananenbuchsen (Masse).

S2C
An diesen Anschluss kommt die linke Bananenbuchsen (L).

S2B
An diesen Anschluss kommt die rechte Bananenbuchsen (C).

Uin/GND
Hier wird die 9V-Batterie (über einen Kippschalter) angeschlossen.

SV1-LCD-Anschluss
Hier wird ein 16x2-LCD-Dotmatrix-Display angeschlossen. Pinbelegung wie folgt:

1 - Vss (Masse)
2 - Vdd (Betriebsspannung)
3 - Vo (Kontrastspannung)
4 - RS
5 - R/W
6 - E
7..10 - D4..D7
Im Stromlaufplan sind die Pin-Nummern der am meisten eingesetzten Displayvariante angegeben.

JP1
Sollte mit  einem Jumper verbunden werden. Dient der Wahl der Maßeinheit in der Anzeige.

Mode-Schalter an T8 .. T13
Wahl der Betriebsart:

GND-RB5 (T13 - T10) : L
Dient der Einschaltung der Induktivitätsmessfunktion.
Hier ist der 2. Umschalter des L-Schalters angeschlossen. Im Ruhezustand ist der Schalter offen, im Arbeitszustand (L-Messung) schließt er , und verbindet T10 (RB5) mit T13 (GND).

GND-RB6 (T12 - T9) : C
Dient der Einschaltung der Kapazitätsmessfunktion.
Hier ist der C-Schalter angeschlossen. Im Ruhezustand ist der Schalter geschlossen und verbindet T9 (RB6) mit T12 (GND). Im Arbeitszustand (C-Messung) öffnet er.

GND-RB7 (T11 - T8) : Zero
Diese Pins T11 (GND) und T8 (RB7) werden mit einem nicht-rastenden Taster "Zero" (Öffner) verbunden. Durch drücken auf den Taster lässt sich ein Offset vom Messwert entfernen. In der L-Betriebsart ist dazu die L-Buchse mit der M-Buchse (Masse) zu verbinden.




Bedienung

Vor dem Einschalten müssen sich die beiden Schalter L und C in Ruheposition befinden, und es darf kein Kondensator angeschlossen sein.
Nach dem Einschalten prüft das Gerät die Ruhestellung aller Schalter, und kalibriert sich dann selbst (Relais klickt).

Kapazitätsmessung:
Schalter C einschalten (drücken).
Falls ohne Kondensator schon ein nennenswerter Kapazitätswert angezeigt wird, dann die Zero-Taste kurz drücken.
Kondensator an die mittlere und rechte Buchse (M & C) anschließen, Ergebnis ablesen.

Induktivitätsmessung
Schalter L einschalten (drücken).
Spule an die linke und mittlere Buchse (L & M) anschließen, Ergebnis ablesen.
Sicherheitshalber sollte man zum Test des Offset die linke und die mittlere Buchse mit einem Prüfkabel verbinden, um den Offset des Geräts abzulesen. Wird dann ein nennenswerter Induktivitätswert angezeigt, dann die Zero-Taste kurz drücken, Prüfkabel wieder entfernen und die Messung mit der Spule wiederholen.



Fehlersuche
 
Fehler mögliche Ursachen
Keinerlei Anzeige im Display. - Display-Kontrastspannung falsch, mit R6 richtig einstellen
- falscher Display-Typ (Hochtemperaturdisplay)
- fehlende Stromversorgung
- Display-Pins 1..3 falsch angeschlossen
Im Display erscheinen in der 1. Zeile graue Rechtecke, die 2. Zeile ist leer. PIC arbeitet nicht:
- Programm im PIC falsch gebrannt
- falsche Oszillatoreinstellung im PIC
PIC kann Display nicht ansteuern
- Fehler in der Verbindung zwischen PIC und Display
Im Display erscheint "Switch Error" Der Schalter L und/oder der Schalter C sind in falscher Position
Im Display erscheint dauerhaft "Calibrating". Das Relais klickt im 2 Sekunden-Takt. - Der Taster Zero ist in der falschen Position
- Das Relais zieht nicht richtig an
- der LM311-Oszillator arbeitet nicht
Induktivitäten werden zu groß gemessen. automatische Nullstellung mangelhaft, deshalb manuell nullen:
1. L-Messbuchsen mit M-Messbuchse direkt verbinden, 
2. Zero-Taste drücken, 
3. Verbindung der Buchsen trennen, 
4. Messobjekt anschließen
5. korrekten L-Wert ablesen



Genauigkeit des Messgerätes

Das Gerät "kalibriert" sich beim Einschalten mit Hilfe des 1,02nF-Kondensators. Die Toleranz dieses Kondensators begrenzt also die erreichbare Genauigkeit. Logischerweise ist die Kalibrierung nun für Kondensatoren am besten, die in etwa in der Größenordnung des Kalibrierkondensators liegen. Bei deutlich größeren oder kleineren Kondensatoren kann der Fehler größer werden.


Karl Rainer B. (vielen Dank) hat die Messergebnisse seines LC-Meter-Nachbaus mit den Messergebnissen einer hochwertigen LC-Messbrücke verglichen, und festgestellt, das der Messfehler seines LC-Metern mit steigender Kapazität des Prüflings stark anstieg,  und bei 2 uF fast 8% erreichte. Die Ursache lag darin begründet, dass die Messung durch Frequenzveränderung des Oszillators erfolgt, und die im Oszillator eingesetzten Kondensatoren und Spulen Werte haben, die etwas frequenzabhängig sind. Auch die schlechte Qualität der Schwingkreisspule wirkte sich negativ aus.

Der Einsatz hochwertiger Bauteile (Glaskondensator für C8 und Spule mit kleinem Innenwiderstand für L2) beseitigte das Problem. Er erreichte dann eine Genauigkeit von 1% ± 1pF im Bereich von 1pF bis 1,9uF. Das ist ein besserer Wert, als ich erwartet hatte.

Fragt mich bitte nicht, wo man solche hochwertigen Bauteile her bekommt.


Johann H. hat mich auf ein generelles Problem aufmerksam gemacht, und dieses genauer untersucht. Bauteile ändern ihre Werte etwas mit der Frequenz. Prinzipbedingt ist die Messfrequenz dieses LC-Meters nicht konstant. Dadurch ergeben sich zusätzliche Messfehler, die hochwertige LC-Messbrücken nicht haben. Ich möchte hier nicht in's Detail gehen, aber der dadurch entstehende Messfehler betrifft vor allem Induktivitäten. Aufgrund umfangreicher Messungen und Vergleiche gibt Johann folgende maximal erreichbare Genauigkeiten an (unter Nutzung hochwertiger Gimmerkondensatoren und eines hochpräziesen Referenzkondensators im Messgerät):

Induktivität Toleranz
1 uH ... 2 uH
25%
2 uH ... 5 uH 10%
5 uH ... 10 mH 3%
10 mH ... 500 mH
2%

Kapazität Toleranz
5 pF ... 10 pF
5%
10 pF ... 50 pF
1%
50 pF ... 10 nF
0,5%
10 nF ... 50 nF
2,5%
50 nF ... 200 nF
5%
200 nF ... 1 uF
10%

Ich habe die Messergebnisse des LC-Meters exemplarisch mit den Ergebnissen meines DE-5000 (von DER EE) bei einer Messfrequenz von 1 kHz verglichen. Die Fehler lagen unter 5%. Allerdings habe ich kleine Induktivitäten nicht getestet.



mögliche Verbesserungen

Eigentlich müsste das ganze Layout überarbeitet werden, damit sich Buchsen und Schalter einigermaßen intuitiv an die Platine anschließen lassen.

Unterhalb der Buchsen möchte ich eine Steckfassung anbringen, in die Kondensatoren und Spulen direkt eingesteckt werden können, da ja nur die wenigsten Bauelemente Bananenstecker haben:-)

Als Schwingkreisspule L benutze ich z.Z. eine Induktivität geringer Güte. Deshalb kann beim Ausmessen von Spulen geringer Güte die Schwingung abreißen. Ich werde zukünftig eine bessere Induktivität einsetzen.

Nach dem Einschalten der Lx-Betriebsart, ist der Nullfehler des Messgerätes nicht ablesbar wenn man nicht die beiden Lx-Buchsen überbrückt. Da ich gerade in dieser Betriebsart aber öfters größere Nullfehler beobachtet habe (warscheinlich infolge eines nicht perfekten Schalterkontaktes) möchte ich über den Lx-Buchsen eine Taster einbauen, der die Lx-Buchsen kurzschließt. Durch Drücken des Tasters kann man den Nullfehler ablesen, wird dann der Null-Taster gedrückt, wird der Nullfehler automatisch kompensiert. Dafür muss ich aber erst mal einen kleinen Taster finden, dessen Kontaktwiderstand bei jedem Drücken garantiert extrem klein ist.

Wann ich dazu komme, endlich diese kleinen Überarbeitungen vorzunehmen, ist unklar. Bekanntlich ist nichts so beständig wie ein Provisorium.


zurück zu Projekte , PIC-Prozessoren , Elektronik , Homepage
Autor: sprut
erstellt: 03.08.2004
letzte Änderung: 15.12.2008