Kapazitätmessen - komische Werte

Gast #1271075
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:
1
SIGNAL(SIG_COMPARATOR)
2
{
3
  double result = 0;
4
  result = TCNT1;//*62/1000;
5
  //result = TCNT1;
6
  char test[10];
7
  dtostrf(result,3,1,test);
8
  send_string(test);
9
  send_string("pF---");
10
  ACSR &= ~(1<<ACIE);  //Interrupt disablen um prellen zu verhindern
11
  
12
}
13

14
void get_cap(void)
15
{
16
  
17
  TCNT1 = 0x00;    // Timerregister 0 setzen
18
  PORTD |= (1<<PD5);  // High setzen um Kondensator zu laden
19
  ACSR |= (1<<ACIE);    //Interrupt enablen
20
}
21

22
int main(void)
23
{
24
 sei();
25
 init_usart();
26
 DDRD |= (1<<PD5);
27
 DDRD &= ~(1<<PD7) | ~(1<<PD6);
28
 TCCR1B = (1 << CS10);  //Prescaler: keiner
29
 ACSR |= (1<<ACIE) | (1<<ACIS0) | (1<<ACIS1); //Interrupt enable rising edges
30

31
  while(1)
32
  {
33
    delay_ms(1000);
34
    PORTD &= ~(1<<PD5);  // Kondensator entladen
35
    delay_ms(1000);
36
    get_cap();
37
    
38
  }
39

40
}
Wäre super wenn einer von euch eine Idee hätte, ich habe keine :(
Gast #1271457
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren