Kalibrierprozedur Spannungsmessung ADC

Gast #3445987
Lesenswert?

Hallo,

ich habe eine simple Spannungsmessung mithilfe eines OPVs und einem 
12bit ADC u(uc). Nun möchte ich eine art Kalibrierprozedur durchführen, 
um die Fehler des OPVs und der Widerstände zu kompensieren.
Eine "Ein-Punkt-Kalibrierung" sollte ausreichen.
Hat jemand schon Erfahrungen in diesem Thema sammeln können?
Wie gehe ich am besten vor, im speziellen was den code betrifft?
Dachte z.B daran, eine Spannung anzulegen und diese mit einem anderen 
Kalibrierten Spannungsmessgerät zu messen. Dieser Wert wird dem uC 
übermittelt und mit dem mit dem vom uC gemessenen Wert verglichen.
Die Differenz von den beiden Werten wird vom uC gespeichert und in 
Zukunft vom gemessenen ADC Wert abgezogen.
Gast #3445992
Lesenswert?

Ein Relais am Eingang das entweder dein Signal  durch leitet oder gegen 
Masse schaltet.
Beim einschalten liegt das Relais gegen Masse und du misst den Offset.
Dann umschalten und den gemessenen Offset abziehen.
#3446104
Lesenswert?

Wir wissen leider nichts ueber das Umfeld. Bei 12 bit koennen wir auf 
0.1% genau messen. Das Schlimmste wird der Offset sein. Also bei Null am 
Eingang diesen ADC Wert festhalten von allen Messwerten abziehen. Dann 
bleiben noch die Verstaerkungsfehler. Um wieviel ist der Maximalwert 
daneben? In den ueblichen Anwendungen laesst man das dann bleiben, und 
akzeptiert ein Prozent oder so als Fehler.
Man kann diesen Falktor auch bestimmen und dann bleibt uebrig :
Temperaturgang des Offsets, Temperaturgang der Verstaerkung, 
Nichtlinearitaeten.
Gast #3446162
Lesenswert?

also konkret handelt is sich um einen 12bit ADC.
Wenn ich jetzt den Wert hole bei kurzgeschlossenem Eingang habe ich den 
Offsetfehler. Den werde ich bei JEDER Messung dann abziehen.
Bezüglich dem Verstärkungsfehler, ich ermittle den Wert bei einer 
bekannten größe (z.b bei 1V).
Wie mache ist das am Vernünftigsten im Code bei einer ADC Messung um den 
Verstärkungsfehler wegzurechnen?
Gast #3446315
Lesenswert?

So, hab mal was geschrieben wie ich das jetzt so machen würde.
Folgende Fragen stelle ich mir noch:
- Kann ich mir die Offsetkompensierung ersparen wenn ich mit einem 
Faktor multipliziere? Der sollte dort schon eingerechnet sein.
- Sollte ich noch eine Abfrage reinnehmen, das sicherstellt das bei der 
Berechnung des Faktors kein Blödsinn vom ADC gemessen wird. Also sollte 
der Wert innerhalb eines Vernünftigen Bereich sein.
1
//Die errechneten Counts bei einer bekannten Größe am Eingang
2
#define CALCOUNT    2345
3

4
float value;
5
float offset;
6
float calvalue;
7

8

9
void get_offset(void)
10
{
11
  short_input();
12
  offset=getadc();
13
}
14

15
void get_calvalue(void)
16
{
17
  set_ext_voltage(1);
18
  calcvalue = getadc() - offset;
19
  calcvalue = calcvalue/CALCOUNT;
20
  
21
}
22
 
23
read_adc(void)
24
{
25

26
value = getadc();
27

28
value = value - offset;
29
value = value*CALCCOUNT;
30
}
#3446519
Lesenswert?

Chloddno schrieb:

> Bei einem Wert von Null ist der Multiplikator irrelevant.
> Ich wuerd man die Geradengleichung anschauen.

Die Wahrscheinlichkeit, das sich der Nullpunkt ändert, ist wesentlich
grösser als das sich der Verstärkungsfaktor ändert. Bei letzteren
reicht meist eine einmalige Einstellung beim Bau. Den Nullpunkt
dagegen sollte man in wesentlich kürzeren Zeitabständen korrigieren.
Gruss
Harald

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