Teil 1: Kapazitäten von 1uF – 2000uF einfach messen mit dem Arduino

Auf Grund dieses Beispiels von der Arduino Seite habe ich mir das Kapazität Messverfahren einmal genauer angesehen. Die Schaltung ist sehr simpel aufgebaut mit 2 Widerständen, einem Arduino Nano und 6 Drahtbrücken

Zuerst wird der Kondensator aufgeladen über dem 10kOhm Widerstand auf 63% von der Arduino Versorgungsspannung (5V). Die Zeit wird ermittelt und die Kapazität daraus errechnet.

Kapazität = Zeit (63%) / Widerstand

Da die Arduino Ausgänge maximal 40mA vertragen muss hier zum Entladen ein Widerstand größer als 125 Ohm verwendet werden.  5V / 40mA = 125 Ohm
Ich habe einen 220 Ohm Widerstand verwendet.

Die Schaltung ist so aufgebaut wie im Beispiel.
– Pin 13 > 10 kOhm > C+
– Pin 11 > 220 Ohm > C+
– A0 > C+
– GND > C-

Kapazitaets Messgeraet

Die Versorgungsspannung kann aus der USB Schnittstelle genommen werden und muss nicht genau 5V sein, da Ladung und Messung sich auf die gerade vorhandene Versorgungsspannung beziehen.

Mit diesem Aufbau und Programm können Kondensatoren von ca. 1uF (mikro Farad) bis zu einigen mF (milli Farad / 1000 uF) gemessen werden. Bei einem mF  dauert die Messung ca. 10 Sekunden. Oder anders ausgedrückt: pro 100uF benötigt die Messung ca. 1 Sekunde.

Unter 1 uF werden die Ergebnisse unbrauchbar, deshalb ist der nF Teil vom Beispiel gelöscht worden.

Hier das übersetzte und etwas angepasste Programm.

// Kondensator Messgerät 1uF bis ca. 2000 uF
// das Beispiel ist von http://arduino.cc/en/Tutorial/CapacitanceMeter
//
// Matthias Busse 22.2.2015 Version 1.0

#define messPin 0             // Analog Messeingang zum Kondensator +
#define ladePin 13            // Kondensator lade Pin über einen 10kOhm Widerstand
#define entladePin 11         // Kondensator entlade Pin über einen 220 Ohm Widerstand
#define widerstand  10000.0F  // Der Ladewiderstandswert

unsigned long startZeit;
unsigned long vergangeneZeit;
float microFarad;

void setup() {
  pinMode(ladePin, OUTPUT);     // ladePin als Ausgang
  digitalWrite(ladePin, LOW);  
  Serial.begin(9600);           // Serielle Ausgabe
  Serial.println("Kapazitaetsmesser Version 1.0");
}

void loop() {
  // Kondensator laden
  digitalWrite(ladePin, HIGH);            // ladePin auf 5V, das Laden beginnt
  startZeit = millis();                   // Startzeit merken
  while(analogRead(messPin) < 648){}      // 647 ist 63.2% von 1023 (5V) 
  vergangeneZeit= millis() - startZeit;
 // Umrechnung: ms zu Sekunden ( 10^-3 ) und Farad zu mikroFarad ( 10^6 ),  netto 10^3 (1000)  
  microFarad = ((float)vergangeneZeit / widerstand) * 1000;   
  Serial.print(vergangeneZeit);           // Zeit ausgeben
  Serial.print(" mS    ");         

  if (microFarad > 0.9){
    if(microFarad < 100) {
      Serial.print(microFarad,1);         // uF.x ausgeben
      Serial.println(" uF     ");
    }
    else {
      Serial.print((long)microFarad);     // uF ausgeben
      Serial.println(" uF     ");
    }
  }
  else {
    Serial.println(" Kapazitaet ist kleiner 1uF ");
  }

  /* Kondensator entladen */
  digitalWrite(ladePin, LOW);             // ladePin auf 0V 
  pinMode(entladePin, OUTPUT);            // entladePin wird Ausgang 
  digitalWrite(entladePin, LOW);          // entladePin auf 0V 
  while(analogRead(messPin) > 0){}        // bis der Kondensator entladen ist (0V)
  pinMode(entladePin, INPUT);             // entladepin wird Eingang
  
  while((millis() - startZeit) < 500){}   // bis 500ms warten, d.h. max 2 Ausgaben pro Sekunde
}

Um die Messungen nicht zu schnell im Terminal durchlaufen zu lassen ist unten im Programm eine Wartezeit bis mindestens 500ms eingebaut, dann werden nur noch maximal 2 Mesungen pro Sekunde ausgegeben.

Bei Elektrolytkondensatoren ist natürlich auf die Polung zu achten >>> Minus an GND

>> zum Teil 2

Hardware: Arduino Nano
Software: Arduino 1.5.8

von Matthias Busse

Ein Gedanke zu „Teil 1: Kapazitäten von 1uF – 2000uF einfach messen mit dem Arduino

  1. Pingback: Teil 2: Kapazitäten von 10nF bis 2000uF einfach messen mit dem Arduino | Shelvin – Elektronik ausprobiert und erläutert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.