Trimmerkondensatoren: Unterschied zwischen den Versionen
| (46 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 26: | Zeile 26: | ||
| Kapazität<br/> ||1,5 - 5 pF<br/> | | Kapazität<br/> ||1,5 - 5 pF<br/> | ||
|} | |} | ||
= Prinziperklärung = | = Prinziperklärung = | ||
Man kann mit einem Arduino sehr gut Kondensatoren im uF Bereich vermessen. | Man kann mit einem Arduino sehr gut Kondensatoren im uF Bereich vermessen. | ||
| Zeile 42: | Zeile 41: | ||
Zum einen ist der Kapazitätsbelag des Steckbretts höher wie die 5pF zum anderen kommen zusätzlich hier die verwendeten Leitungen hinzu deren Kapazität ebenfalls in der Größen Ordnung liegen. | Zum einen ist der Kapazitätsbelag des Steckbretts höher wie die 5pF zum anderen kommen zusätzlich hier die verwendeten Leitungen hinzu deren Kapazität ebenfalls in der Größen Ordnung liegen. | ||
Bei der der hier benutzten Methode handelt es sich um eine abgeänderte Version des obriegen Modells. | |||
Der Signalgenerator wird durch die konstant Spannungsquelle des Arduinos ersetzt. | |||
Der Spannungsteiler mit dem Kondensator bleiben. | |||
Aufgrund des sehr kleinen Kondensators, muss der Widerstand sehr groß gewählt werden hier im MOhm Bereich. | |||
Im Ersten Schritt wird der Digitalport auf LOW gesetzt. | |||
Dann wird die Zeit gemessen, bis der Kondensator aufgeladen ist und dadurch sich der Pegel am Digitalport auf HIGH ändert. | |||
Dadurch lässt sich die Kapazität des Kondensators bestimmen. | |||
Ladegesetz: | |||
<math>\tau=\frac{-t}{RC}</math> | |||
<math>V(t)=Vcc(1-e^{\tau})</math> | |||
mit der Annhame, dass beim DigitalPort vom Arduino die Input Schaltschwelle bei <math>Vth=0,63Vcc</math> liegt. | |||
t≈−RCln(1−VthVcc)≈R⋅C t≈−RCln(1− V cc V th )≈R⋅C | |||
(bei Vth≈0,63Vcc V th ≈0,63V cc ist der Faktor ≈1). | |||
Beispiel (R = 4,7 MΩ): | |||
C = 5 pF → τ=RC=4,7⋅106⋅5⋅10−12=23,5 μs τ=RC=4,7⋅10 6 ⋅5⋅10 −12 =23,5 μs | |||
C = 1.5 pF → τ=7,05 μs τ=7,05 μs | |||
=Messschaltung= | =Messschaltung= | ||
Messschaltung zur Messung des Winkels mittels Drehkondensator | Messschaltung zur Messung des Winkels mittels Drehkondensator | ||
[[Datei:Screenshot 2025-10- | [[Datei:Screenshot 2025-10-27 140010.png|500px|Simulation einer Messschaltung für kleine Kondensatoren im pF Berreich]] | ||
= Messung = | = Messung = | ||
Beispielhafte Messung mit Ausgabe der Kapazität des Kondensators. | Um Ihre Schaltung an die Software anzupassen, müssen Sie folgendermaßen vorgehen. | ||
Jede Annäherung Ihres Körpers an die Kabel verstimmt Ihre Schaltung. | |||
Bauen Sie die Schaltung nach Abbildung auf. Dann führen Sie eine Testmessung durch, diese dient dazu den Offset ihrer Schaltung zu bestimmen. | |||
Dazu drehen sie mit dem beiliegenden Kunststoffschraubendreher vorsichtig, ohne die Position ihrer Kabel zu verändern, den Kondensator so lange bis sie ein Minimum erreicht haben. | |||
Diesen Wert müssen sie sich merken, er sollte 1,5pF betragen, die minimale Kapazität des Kondensators. | |||
Sollte der Wert nicht passen, müssen Sie die Messkonstante in Zeile 25 C_pf_Leitung so lange anpassen, bis Ihr minimaler Wert 1,5pF anzeigt. | |||
Nun sollte beim Drehen des Kondensators die Kapazität zwischen 1,5pF und 6,2pF schwanken. | |||
Sollte der inzwischen angezeigte maximal Wert größer sein als 6,2pF müssen Sie den Wert in Zeile 26 const float C_pf_max =6.2 anpassen. | |||
Jetzt bekommen Sie einen Messwert von 1,5pF -6,2pF sowie eine passende Winkelanzeige zwischen 0 und 180°. | |||
Beispielhafte Messung mit Ausgabe der Kapazität des Kondensators und des Drehwinkels. | |||
[[Datei:Screenshot 2025-10-22 153429.png|500px|Ausgabe der Kapazität und des Drehwinkels mit HTerm ]] | [[Datei:Screenshot 2025-10-22 153429.png|500px| Ausgabe der Kapazität und des Drehwinkels mit HTerm ]] | ||
= Demo = | = Demo = | ||
Link zum Demo im ArduinoUnoR3 Ordner | Link zum Demo im ArduinoUnoR3 Ordner | ||
*[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoTrimmKondensator5pF// SVN: Arduino Bibliothek/Beispiele] | *[https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoTrimmKondensator5pF// SVN: Arduino Bibliothek/Beispiele] | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong><code>DemoTrimmKondensator5pF.ino</code> </strong> | |||
|- | |||
|<syntaxhighlight lang="matlab" style="background-color: #EFF1C1; font-size:small"> | |||
//----------------------------------- | |||
//Trimmkondensator auslesen | |||
// Vcc (5V) | |||
// | | |||
// R = 5MΩ | |||
// | | |||
// +----> Arduino digital Pin D2 (Input) | |||
// | | |||
// C_trimmer (1.5..5 pF) --- GND | |||
// | |||
// | |||
// | |||
// | |||
// | |||
// arduino Uno Pin D2 Input | |||
// Kabel miteinander verdrillen und kurz halten. | |||
// Leitung und Steckbrett ergeben etwa 15-16pF Offset | |||
// | |||
// | |||
//https://wiki.hshl.de/wiki/index.php/Trimmerkondensatoren#Prinziperkl%C3%A4rung | |||
//22.10.2025 | |||
//----------------------------------- | |||
const int measPin = 2; // Pin zum Messen | |||
const unsigned int N = 200; // Mittelungsanzahl | |||
const float C_pf_Leitung = 14.5; //Kapazität des Messaufbaus muss am Anfang gemessen werden und dann eingetragen werden.C_pf muss minimal1,5pF ergeben | |||
const float C_pf_max =6.2; // Maximale Kapaziät des Kondensators | |||
const float C_pf_min =1.5; // Minimale Kapazität de Kondensator | |||
const unsigned int Drehwinkel =360; //Drehwinkel des Kondensators | |||
void setup() | |||
{ | |||
// put your setup code here, to run once: | |||
Serial.begin(115200); | |||
pinMode(measPin, INPUT); | |||
} | |||
//----------------------------------- | |||
unsigned long measureTime() | |||
{ | |||
// Entlade: Pin als Ausgang LOW kurz | |||
pinMode(measPin, OUTPUT); | |||
digitalWrite(measPin, LOW); | |||
delayMicroseconds(20); | |||
// Schalte auf INPUT (High-Z) und starte Zeitmessung bis HIGH | |||
pinMode(measPin, INPUT); | |||
unsigned long t0 = micros(); | |||
while (digitalRead(measPin) == LOW) | |||
{ | |||
if (micros() - t0 > 1000000UL) return 0; // Timeout (sicher) | |||
} | |||
return micros() - t0; | |||
} | |||
//----------------------------------- | |||
void loop() { | |||
// put your main code here, to run repeatedly: | |||
unsigned long sum = 0; | |||
for (unsigned int i=0;i<N;i++){ | |||
unsigned long dt = measureTime(); | |||
if (dt==0) { Serial.println("Timeout"); break; } | |||
sum += dt; | |||
delayMicroseconds(100); // kurze Pause | |||
} | |||
float avg = (float)sum / N; // avg time in microseconds | |||
// Näherung C = avg / R (R in seconds -> R [ohm] * C [F] = seconds) | |||
float R = 4.96e6; // Ohm | |||
float tau = avg * 1e-6; // s | |||
float C = tau / R; // Farad | |||
float C_pf = C * 1e12; // pF | |||
float C_pf_mess = C_pf - C_pf_Leitung; // abzug der Kapaziät des Messaufbaus | |||
//Umrechnung in Drehwinkel | |||
float winkel=((C_pf_mess-C_pf_min)*Drehwinkel/(C_pf_max-C_pf_min))/2; | |||
Serial.print("t_us="); Serial.print(avg); | |||
Serial.print(" C_pf="); Serial.print(C_pf_mess, 3); | |||
Serial.print(" Winkel="); Serial.println(winkel); | |||
delay(200); | |||
} | |||
</syntaxhighlight> | |||
=Hardwareaufbau= | =Hardwareaufbau= | ||
*[https://am.heise.de/abo/06_ma_education/kondensatormessger%C3%A4t.pdf?wt_mc=intern.abo.make.education.lp_ad.10.10 | |||
[[Datei:IMG 20251022 145945.jpg|500px| Verdrahtung des Arduinos ]] | |||
Bitte benutzen Sie die bereit gelegten 1M Ohm Widerstände und schalten Sie diese in Serie so zusammen, dass Sie 5MOhm bekommen. | |||
Messen sie den Wert mit einem Multimeter nach und tragen Sie diesen in der Software Zeile 65 R= ? ein. | |||
Lassen sie sich mit dem Seriellen Anzeige die Werte für das Kondensatortrimmpoti Anzeigen und | |||
notieren Sie sich die Min.- und Max. -Werte und tragen Sie diese in der Software in Zeile 26 und Zeile 27 ein. | |||
Nun sollten Sie einen Messwert für den Drehwinkel bekommen von 0-180°. | |||
*[https://am.heise.de/abo/06_ma_education/kondensatormessger%C3%A4t.pdf?wt_mc=intern.abo.make.education.lp_ad.10.10 Kondensator-Messgerät für große Kapazitäten] | |||
= Datenblätter = | = Datenblätter = | ||
Aktuelle Version vom 27. Oktober 2025, 14:03 Uhr

Autoren: Marc Ebmeyer
Einleitung
Ein Trimmkondensator ist ein in einem festen Bereich einstellbarer Kondensator. In diesem Fall handelt es sich um einen Drehkondensator, da hier mehrere übereinander Liegende Kondensator Platten übereinander verdreht werden, wodurch sich die Gesamtkapazität ändert. Mit einen kleinen Schlitzschraubendreher lässt sich dieser Wert einstellen. Bei Präzisen Messungen nutzt man, um keine weiteren Kapazitäten zu verursachen, dazu Keramische Schraubendreher, wie z.B. beim einstellen von Oszilloskopen.
Thema: Kapazitive Winkelmessung
Technische Übersicht
| Eigenschaft | Daten |
|---|---|
| Isolationsspannung |
VCC 150 V |
| Temperaturbereich |
-40 - 70 °C |
| Min. Resonanz Frequenz |
700 MHz |
| Kapazität |
1,5 - 5 pF |
Prinziperklärung
Man kann mit einem Arduino sehr gut Kondensatoren im uF Bereich vermessen. Dazu nutzt man einen Digital-Port des Arduinos als Signalgenerator und erzeugt mit Ihr Sprünge von LOW nach HIGH. Diese gibt man auf einen Spannungsteiler, siehe Abbildung. Nun kann man mit dem Analogeingang des Arduinos die ansteigende Flanke am Kondensator messen. Dabei ist zu beachten, dass am Arduino UNO der analoge Port zwar mit einem Innenwiederstand von 100Mega Ohm angegeben ist, aufgrund der Kapazitiven Messmethode des Arduinos am Analogeingangsport man mit 10k Ohm rechnen muss. R1 ist der Vorwiderstand für den Kondensator hier Beispielhaft für einen 100uF Kondensator siehe Simulation.

Der hier vorliegende Kondensator hat allerdings maximal 5pF, sodass an die grenzen vom Arduino stößt, sowohl was die maximale Frequenz am Digital Ausgang, als auch was die maximale Frequenz.

Deswegen muss man die Messung ein wenig anpassen. Dabei treten verschiedene Probleme auf. Zum einen ist der Kapazitätsbelag des Steckbretts höher wie die 5pF zum anderen kommen zusätzlich hier die verwendeten Leitungen hinzu deren Kapazität ebenfalls in der Größen Ordnung liegen.
Bei der der hier benutzten Methode handelt es sich um eine abgeänderte Version des obriegen Modells. Der Signalgenerator wird durch die konstant Spannungsquelle des Arduinos ersetzt. Der Spannungsteiler mit dem Kondensator bleiben. Aufgrund des sehr kleinen Kondensators, muss der Widerstand sehr groß gewählt werden hier im MOhm Bereich. Im Ersten Schritt wird der Digitalport auf LOW gesetzt. Dann wird die Zeit gemessen, bis der Kondensator aufgeladen ist und dadurch sich der Pegel am Digitalport auf HIGH ändert. Dadurch lässt sich die Kapazität des Kondensators bestimmen.
Ladegesetz:
mit der Annhame, dass beim DigitalPort vom Arduino die Input Schaltschwelle bei liegt.
t≈−RCln(1−VthVcc)≈R⋅C t≈−RCln(1− V cc V th )≈R⋅C
(bei Vth≈0,63Vcc V th ≈0,63V cc ist der Faktor ≈1).
Beispiel (R = 4,7 MΩ):
C = 5 pF → τ=RC=4,7⋅106⋅5⋅10−12=23,5 μs τ=RC=4,7⋅10 6 ⋅5⋅10 −12 =23,5 μs
C = 1.5 pF → τ=7,05 μs τ=7,05 μs
Messschaltung
Messschaltung zur Messung des Winkels mittels Drehkondensator
Messung
Um Ihre Schaltung an die Software anzupassen, müssen Sie folgendermaßen vorgehen. Jede Annäherung Ihres Körpers an die Kabel verstimmt Ihre Schaltung. Bauen Sie die Schaltung nach Abbildung auf. Dann führen Sie eine Testmessung durch, diese dient dazu den Offset ihrer Schaltung zu bestimmen. Dazu drehen sie mit dem beiliegenden Kunststoffschraubendreher vorsichtig, ohne die Position ihrer Kabel zu verändern, den Kondensator so lange bis sie ein Minimum erreicht haben. Diesen Wert müssen sie sich merken, er sollte 1,5pF betragen, die minimale Kapazität des Kondensators. Sollte der Wert nicht passen, müssen Sie die Messkonstante in Zeile 25 C_pf_Leitung so lange anpassen, bis Ihr minimaler Wert 1,5pF anzeigt. Nun sollte beim Drehen des Kondensators die Kapazität zwischen 1,5pF und 6,2pF schwanken. Sollte der inzwischen angezeigte maximal Wert größer sein als 6,2pF müssen Sie den Wert in Zeile 26 const float C_pf_max =6.2 anpassen. Jetzt bekommen Sie einen Messwert von 1,5pF -6,2pF sowie eine passende Winkelanzeige zwischen 0 und 180°.
Beispielhafte Messung mit Ausgabe der Kapazität des Kondensators und des Drehwinkels.
Demo
Link zum Demo im ArduinoUnoR3 Ordner
DemoTrimmKondensator5pF.ino
|
//-----------------------------------
//Trimmkondensator auslesen
// Vcc (5V)
// |
// R = 5MΩ
// |
// +----> Arduino digital Pin D2 (Input)
// |
// C_trimmer (1.5..5 pF) --- GND
//
//
//
//
//
// arduino Uno Pin D2 Input
// Kabel miteinander verdrillen und kurz halten.
// Leitung und Steckbrett ergeben etwa 15-16pF Offset
//
//
//https://wiki.hshl.de/wiki/index.php/Trimmerkondensatoren#Prinziperkl%C3%A4rung
//22.10.2025
//-----------------------------------
const int measPin = 2; // Pin zum Messen
const unsigned int N = 200; // Mittelungsanzahl
const float C_pf_Leitung = 14.5; //Kapazität des Messaufbaus muss am Anfang gemessen werden und dann eingetragen werden.C_pf muss minimal1,5pF ergeben
const float C_pf_max =6.2; // Maximale Kapaziät des Kondensators
const float C_pf_min =1.5; // Minimale Kapazität de Kondensator
const unsigned int Drehwinkel =360; //Drehwinkel des Kondensators
void setup()
{
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(measPin, INPUT);
}
//-----------------------------------
unsigned long measureTime()
{
// Entlade: Pin als Ausgang LOW kurz
pinMode(measPin, OUTPUT);
digitalWrite(measPin, LOW);
delayMicroseconds(20);
// Schalte auf INPUT (High-Z) und starte Zeitmessung bis HIGH
pinMode(measPin, INPUT);
unsigned long t0 = micros();
while (digitalRead(measPin) == LOW)
{
if (micros() - t0 > 1000000UL) return 0; // Timeout (sicher)
}
return micros() - t0;
}
//-----------------------------------
void loop() {
// put your main code here, to run repeatedly:
unsigned long sum = 0;
for (unsigned int i=0;i<N;i++){
unsigned long dt = measureTime();
if (dt==0) { Serial.println("Timeout"); break; }
sum += dt;
delayMicroseconds(100); // kurze Pause
}
float avg = (float)sum / N; // avg time in microseconds
// Näherung C = avg / R (R in seconds -> R [ohm] * C [F] = seconds)
float R = 4.96e6; // Ohm
float tau = avg * 1e-6; // s
float C = tau / R; // Farad
float C_pf = C * 1e12; // pF
float C_pf_mess = C_pf - C_pf_Leitung; // abzug der Kapaziät des Messaufbaus
//Umrechnung in Drehwinkel
float winkel=((C_pf_mess-C_pf_min)*Drehwinkel/(C_pf_max-C_pf_min))/2;
Serial.print("t_us="); Serial.print(avg);
Serial.print(" C_pf="); Serial.print(C_pf_mess, 3);
Serial.print(" Winkel="); Serial.println(winkel);
delay(200);
}
HardwareaufbauBitte benutzen Sie die bereit gelegten 1M Ohm Widerstände und schalten Sie diese in Serie so zusammen, dass Sie 5MOhm bekommen. Messen sie den Wert mit einem Multimeter nach und tragen Sie diesen in der Software Zeile 65 R= ? ein. Lassen sie sich mit dem Seriellen Anzeige die Werte für das Kondensatortrimmpoti Anzeigen und notieren Sie sich die Min.- und Max. -Werte und tragen Sie diese in der Software in Zeile 26 und Zeile 27 ein. Nun sollten Sie einen Messwert für den Drehwinkel bekommen von 0-180°.
DatenblätterWeiterführende Artikel→ zurück zum Hauptartikel: HSHL-Mechatronik-Baukasten |