www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kapazitätmessen - komische Werte


Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich will die Kapazität von einem kondensator so im Bereich 10pF - 100pF 
messen, und zwar indem ich die Zeit messe, die der Kondensator braucht 
um sich auf 63% der Ladespannung 5V aufzuladen. µc ist ein Atmega8 der 
mit 16Mhz läuft ohne Vorteiler.
Jetzt brauche ich für 55pF aber 691 Takte zum aufladen anstelle der 
errechneten 880, genauso für 102pF 1050 anstatt 1632. Der Ladewiderstand 
beträgt 1Mohm, und ich verwende den internen Komparator des ATmega8. 
Noch etwas Code:
SIGNAL(SIG_COMPARATOR)
{
  double result = 0;
  result = TCNT1;//*62/1000;
  //result = TCNT1;
  char test[10];
  dtostrf(result,3,1,test);
  send_string(test);
  send_string("pF---");
  ACSR &= ~(1<<ACIE);  //Interrupt disablen um prellen zu verhindern
  
}

void get_cap(void)
{
  
  TCNT1 = 0x00;    // Timerregister 0 setzen
  PORTD |= (1<<PD5);  // High setzen um Kondensator zu laden
  ACSR |= (1<<ACIE);    //Interrupt enablen
}

int main(void)
{
 sei();
 init_usart();
 DDRD |= (1<<PD5);
 DDRD &= ~(1<<PD7) | ~(1<<PD6);
 TCCR1B = (1 << CS10);  //Prescaler: keiner
 ACSR |= (1<<ACIE) | (1<<ACIS0) | (1<<ACIS1); //Interrupt enable rising edges

  while(1)
  {
    delay_ms(1000);
    PORTD &= ~(1<<PD5);  // Kondensator entladen
    delay_ms(1000);
    get_cap();
    
  }

}
Wäre super wenn einer von euch eine Idee hätte, ich habe keine :(

Autor: peter-neu-ulm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist denn die Schaltschwelle des Komparators festgelegt? schaltet er 
wirklich bei 63% der Ladespannung ?

Autor: Dieter Werner (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht spielt auch ein unerwünschter Strom durch den Anschlußpin des 
Komparators eine Rolle.

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan her. Wie entlädst du den Kondensator vorher?

Autor: Franz (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
im Anhang der Schaltplan. Schaltschwelle ist 3.15V. Der Kondensator wird 
durch den PD5 entladen, indem ich ihn low setze(siehe Code).
Gruß
Franz

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Strom nach AIN0 ist mit maximal 1µA spezifiziert.
Durch den 1Mohm fließen 2µA < I < 5µA.
Am besten mal nachmessen wieviel real reinfließen.

Desweiteren ist das Ziel 10pF - 100pF mit einem AVR zu messen recht 
ehrgeizig.
10pf dürften schon die zwei Beinchen mit Leiterbahnen haben.

Autor: Ralli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn programmtechnisch alles stimmt, hilft vielleicht folgende Annahme:

102 pF / 55 pf = 1,85

1050 / 691 = 1,52

137 pF / 90 pF = 1,522

Eine zusätzliche Schaltungskapazität von 35 pF
würde also schon alles erklären.

Ansonsten: Was kommt denn bei C = 0 pF raus?

Da der zu messende Wert schon im Bereich der parasitären Kapazitäten
im Aufbau und im ATMega8 liegt, (temperaturabhängig!) muss dieser
Wert vor jeder Messung ermittelt werden!

Gruß Ralli

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hier ist nicht nur zum Nachbauen interessant, auch ein paar Tricks 
zum Messverfahren sind hier beschrieben:

http://elm-chan.org/works/cmc/report.html

Vor allem dieser Satz dürfte das Problem erklären:
Leakage current on analog input. Accrding to AVR data sheet, the leakage 
current on analog input is increased near zero volt. This will cause a 
measurement error

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.