Diskussion:Trimmerkondensatoren: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „Vorschlag von Chat GPT Direktmessung mit Arduino (RC-Ladezeit) Prinzip: Trimmer bildet mit hochohmigem Widerstand einen RC-Lader. Arduino schaltet Pin auf HIGH → misst Ladezeit bis Input als HIGH erkannt wird. Vorteil: nur Arduino (keine Zusatz-ICs). Nachteil: sehr empfindlich gegen Leckströme, Störungen; nötige Widerstandswerte sind groß. Schaltung (einfach) Vcc (5V) | R = 4.7 MΩ | +----> Arduino digital Pin D2 (Input)…“
 
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
Vorschlag von Chat GPT
Vorschlag von Chat GPT
* Bitte Aufbauen, testen und im Artikel beschreiben.


Direktmessung mit Arduino (RC-Ladezeit)
Direktmessung mit Arduino (RC-Ladezeit)

Aktuelle Version vom 16. Oktober 2025, 06:58 Uhr

Vorschlag von Chat GPT

  • Bitte Aufbauen, testen und im Artikel beschreiben.

Direktmessung mit Arduino (RC-Ladezeit)

Prinzip: Trimmer bildet mit hochohmigem Widerstand einen RC-Lader. Arduino schaltet Pin auf HIGH → misst Ladezeit bis Input als HIGH erkannt wird. Vorteil: nur Arduino (keine Zusatz-ICs). Nachteil: sehr empfindlich gegen Leckströme, Störungen; nötige Widerstandswerte sind groß.

Schaltung (einfach)

  Vcc (5V)
    |
   R = 4.7 MΩ
    |
   +----> Arduino digital Pin D2 (Input)
   |
  C_trimmer (1.5..5 pF) --- GND

(Anmerkung: Pin D2 wird als Eingang gemessen; für Ladevorgang schaltest du vorher ein Ausgang auf LOW/INPUT usw. — Code sorgt dafür.)

Teile

Arduino (Uno/Nano)

R = 4.7 MΩ (oder 10 MΩ, siehe Hinweise)

Trimmer (1.5–5 pF)

kurze, abgeschirmte Verbindungskabel, Masse gut verbinden

Theorie (genau, Ziffern)

Ladegesetz: V(t)=Vcc(1−e−t/(RC)) V(t)=V cc ​

(1−e −t/(RC) ). Wenn die Input-Schaltschwelle Vth≈0,63 Vcc V th ​

≈0,63V cc ​

gilt, dann ist

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

Diese Zeiten liegen im Mikrosekundenbereich — gut messbar mit micros() oder besser mit Timer-Input-Capture (higher resolution). Verwende Mittelung (z. B. 100 Messungen) zur Rauschminderung.

Arduino-Sketch (vereinfachte Variante mit micros() — funktional) const int measPin = 2; // Pin zum Messen const unsigned int N = 200; // Mittelungsanzahl

void setup(){

 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(){

 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.7e6; // Ohm
 float tau = avg * 1e-6; // s
 float C = tau / R; // Farad
 float C_pf = C * 1e12; // pF
 Serial.print("t_us="); Serial.print(avg); Serial.print("  C_pf=");
 Serial.println(C_pf, 3);
 delay(200);

}

Kalibrierung & Mapping auf Winkel

Messe t (oder berechnetes C) bei bekannten Winkelpositionen (z. B. 0°, 90°, 180°).

Erzeuge Lookup-Tabelle oder lineare Regression: angle = a * C + b oder angle = map(C_pf, Cmin, Cmax, angleMin, angleMax).

Tipps & Einschränkungen

Leitungen extrem kurz halten; parasitäre Kapazität kann größer sein als 5 pF.

Abschirmung (Coax oder Ground-Shield) reduziert Störeinflüsse.

Hoher Widerstand macht Leckströme / Input-Leakage relevant → ggf. Wähle 4.7 MΩ statt 10 MΩ.

Wenn Messwerte sehr instabil: verwende Option B (Oszillator) oder einen C-to-D IC (FDC1004 / AD7746).