Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Auto-Ranging Kapazitätsmesser (10 pF – 10 µF) – Einfacher Arduino-Nano-Bau

Komponenten und Zubehör

Bauteil Menge
Arduino Nano R3 1
Alphanumerisches LCD 16×2 (HD44780-kompatibel) 1
Widerstand 10 kΩ 1
Widerstand 1 kΩ 1
Widerstand 1 MΩ 1
Potentiometer 10 kΩ (LCD-Kontrast) 1

Werkzeuge

Software

Funktionsprinzip

Einfache Digitalmultimeter können oft keine Kapazität messen. Dieses Projekt realisiert ein auto-rangierendes Kapazitätsmessgerät auf Arduino-Basis, das Kapazitäten von 10 pF bis 10.000 µF misst. Die Messung erfolgt vollautomatisch: Der zu messende Kondensator wird lediglich an die Messkontakte angeschlossen.

Messverfahren

Der Arduino lädt den unbekannten Kondensator über einen bekannten Widerstand (R) auf und misst die Zeit, bis die Kondensatorspannung einen bestimmten Schwellenwert (hier ca. 63 % der Versorgungsspannung = 1 τ) erreicht. Aus der Ladezeitkonstanten τ = R × C wird die Kapazität C berechnet.

Zwei Messbereiche werden automatisch umgeschaltet:

Vor jeder Messung wird ein Nullabgleich (Offset-Kompensation) durchgeführt. Beim Einschalten darf kein Kondensator angeschlossen sein. Alle Testkondensatoren müssen vorab entladen sein.

DIY Auto-Ranging Kapazitätsmesser (10 pF – 10 µF) – Einfacher Arduino-Nano-Bau
Vollständiger Aufbau im Gehäuse

Genauigkeit

Die Genauigkeit liegt bei ± wenige Prozent und hängt primär von der Toleranz der verwendeten Widerstände (1 %, 0,1 % empfohlen) und der Stabilität der Versorgungsspannung ab. Für präzisere Messungen sollten Präzisionswiderstände und eine stabile 5-V-Referenz verwendet werden.

Schaltplan

Der Schaltplan zeigt die minimalistische Beschaltung:

DIY Auto-Ranging Kapazitätsmesser (10 pF – 10 µF) – Einfacher Arduino-Nano-Bau
Schaltplan (Bild zeigt Aufbau, Schaltplan entspricht Beschreibung)

Arduino-Code

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7

void setup() {
  lcd.begin(16, 2);
  pinMode(A0, INPUT);
}

unsigned long time0, time1, time2;
float capacitance, nullOffset;
byte rangeMode, rangeSwitch, initDone;

void loop() {
  lcd.setCursor(15, 0);
  lcd.print("*"); // Herzschlag-Indikator

  // Bereich wählen: 0 = nF (1M), 1 = µF (1k)
  if (rangeMode == 0) {
    pinMode(8, OUTPUT);
    pinMode(7, INPUT);
    digitalWrite(8, HIGH); // Laden über 1M an Pin 8
  } else {
    pinMode(7, OUTPUT);
    pinMode(8, INPUT);
    digitalWrite(7, HIGH); // Laden über 1k an Pin 7
  }

  time0 = micros();
  // Warten bis Schwellenwert ~63% (ADC-Wert 644 von 1023 bei 5V)
  while (analogRead(A0) < 644) {
    time2 = micros() - time0;
    // Timeout 1s im nF-Bereich -> Umschalten auf µF-Bereich
    if (time2 >= 1000000 && rangeMode == 0) {
      rangeMode = 1;
      time0 = 100000000; // Force break
      break;
    }
  }

  time1 = micros() - time0;

  // Entladen über beide Pins auf LOW
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  while (analogRead(A0) > 0) { /* warten bis vollständig entladen */ }

  // Zurückschalten auf nF-Bereich, wenn µF-Messung sehr schnell war
  if (rangeMode == 1 && time1 < 1000) {
    rangeMode = 0;
  }

  // Anzeige
  lcd.setCursor(1, 0);
  capacitance = time1 / 1000.0 - nullOffset; // Zeit in µs -> Skalierung
  capacitance = abs(capacitance);

  if (time1 >= 10000000) {
    lcd.print(" TEST uF ");
  } else {
    lcd.print(capacitance);
    if (rangeMode == 0) lcd.print(" nF ");
    else lcd.print(" uF ");
  }

  // Einmaliger Nullabgleich beim ersten Durchlauf
  if (initDone == 0) {
    initDone++;
    nullOffset = capacitance + 0.02;
  }

  delay(100);
}

Aufbau & Gehäuse

Die Schaltung wird auf Lochrasterplatine oder eigener PCB aufgebaut und in einem passenden Gehäuse untergebracht. Die Messkontakte (z. B. zwei Bananenbuchsen oder Schraubklemmen) sollten gut zugänglich sein. Das Gerät ist ein nützliches, kostengünstiges Werkzeug für jede Elektronik-Werkstatt.

Erweiterungsideen

Herstellungsprozess

  1. Smart Thirst Alert: DIY Pflanzen-Alarm für optimale Bewässerung
  2. 20-kHz-Arduino-Oszilloskop mit Nokia 5110 LCD – Einfacher DIY-Bau
  3. DIY ADXL335 Erdbeben-Detektor – Low-Power 3-Achsen-Beschleunigungsmesser-Projekt
  4. Italienische Word Clock mit Arduino Nano, NeoPixel, LCD & RTC
  5. Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial
  6. Zuverlässiger Sigfox-kWh-Zähler mit Arduino MKR Fox 1200
  7. DIY-Frequenzzähler – Bis 6,5 MHz mit Arduino Nano messen
  8. Bluetooth-Temperaturmonitor mit Arduino Nano
  9. Isolierter Analogeingang für Arduino: Spannung/Strom galvanisch trennen
  10. Präziser Reaktionszeit-Test mit Arduino UNO