Forum: Analoge Elektronik und Schaltungstechnik Spannungsmessung mit AVR


von Johann L. (gjlayde) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi, ich versuche gerade eine Spannungsmessung mit einem AVR ATmega8 zu 
realisieren.

Ich hatte schon mal ein C-Meter gebaut, das ganz gut funktioniert mit 
einer Auflösung bis zu einigen pF:

Kondensator C hängt an AIN- des Analog-Komparators (AC) und wird 
entladen, indem man AIN- auf HIGH setzt. Nachdem er entladen ist, 
schaltet man AIN- hochohmig und misst die Zeit, bis die Spannung an AIN- 
unter die Referenzspannung U_ref gefallen ist, die am AIN+ des AC hängt. 
Dazu verdrahtet man U_S = GND und der C lädt sich über R auf.

Soweit ein alter Hut, und das geht wie gesagt bis zu einigen pF genau.

Das wollte ich nun verwenden, um eine schnelle Spannungsmessung zu 
realisieren, indem ich nicht U_S=GND wähle, sondern bei bekannten Werten 
U_ref, C und R die Spannung U_S bestimme gemäss

U_0 ist die Vorspannung am Kondensator, also U_0=VCC (ich messe kein 
Unterschied zwischen HIGH-Pegel am AVR-Pin und VCC).

Durch Messen der Zeit t sollte es also möglich sein, U_S zu bestimmen.

Dummerweise stimmen die gemessenen Werte nicht mit den berechneten 
überein, und ich hab keine Ahnung, woran das liegen könnte. Sämltliche 
Werte hab ich nachgemessen, und die exakten Werte für die Berechnung 
verwendet.

Eigentlich ist dieses Verfahren ganz nett, denn
-- die Messung ist einigermassen hochohmig
-- je nach RC-Konfiguration kann man Zeit gegen Genauigkeit eintauschen
-- man kann negative Spannungen messen

Hier mal ein paar Messwerte
1
U_S -> Ticks @ 16MHz
2
0.0 -> 120
3
0.2 -> 125
4
0.4 -> 129
5
0.6 -> 134
6
0.8 -> 140
7
1.0 -> 147
8
1.2 -> 155

Wie man sieht geht die Messung sehr fix im Vergleich zu einem ADC, ist 
aber natürlich nicht so exakt. In der Anordnung reichen zur Messung 12µs 
(das sind 200 Ticks).

Die nach der Formel berechneten Werte
1
U_S -> Ticks @ 16MHz
2
3
0.0 -> 83
4
0.1 -> 85
5
0.2 -> 87
6
0.3 -> 89
7
0.4 -> 91
8
0.5 -> 93
9
0.6 -> 95
10
0.7 -> 98
11
0.8 -> 100
12
0.9 -> 103
13
1.0 -> 105
14
1.1 -> 108
15
1.2 -> 111
16
1.3 -> 114
17
1.4 -> 118
18
19
Ticks -> U_S
20
10 -> -35.167312
21
20 -> -15.195828
22
30 -> -8.538683
23
40 -> -5.210123
24
50 -> -3.212997
25
60 -> -1.881587
26
70 -> -0.930588
27
80 -> -0.217344
28
90 -> 0.337395
29
100 -> 0.781182
30
110 -> 1.144276
31
120 -> 1.446850

Die Anordung müsste doch hochohmig genug sein, um die Spannung am 
Spannungsteiler R1/R2 nicht allzusehr zu beeinflussen? Durch R fliessen 
nicht mehr als 3µA, durch den U_ref-Teiler hingegen 500µA...

Georg-Johann

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

**ARGL**

Hatte alles ausgemessen bis auf den C, hätte mich eigentlich stutzig 
mchen müssen der Unterschied bei U_S=0V...

Da hat's wohl einige parasitäre Kapazitäten oder so. Für C=144 pF 
berechne ich folgende Werte:
1
U_S -> Ticks @ 16MHz
2
0.0 -> 120
3
0.1 -> 123
4
0.2 -> 125
5
0.3 -> 128
6
0.4 -> 131
7
0.5 -> 134
8
0.6 -> 137
9
0.7 -> 141
10
0.8 -> 144
11
0.9 -> 148
12
1.0 -> 152
13
1.1 -> 156
14
1.2 -> 160
15
1.3 -> 165
16
1.4 -> 170
17
18
Ticks -> U_S
19
50 -> -6.727945
20
60 -> -4.810697
21
70 -> -3.441239
22
80 -> -2.414150
23
90 -> -1.615307
24
100 -> -0.976236
25
110 -> -0.453362
26
120 -> -0.017637
27
130 -> 0.351050
28
140 -> 0.667066
29
150 -> 0.940944
30
160 -> 1.180585
31
170 -> 1.392031

Das sieht schon mal brauchbarer aus. Vielleicht kann man ja trotzdem 
noch was verbessern?

Georg-Johann

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.