mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Genau messen trotz schlechter Auflösung


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

muesste im mV Bereich messen. Da wollte ich wissen, ob das Verfahren, 
dass ich mir für den AVR überlegt hab, funktioniert und man so dennoch 
gute Werte erhält.

Also, wenn ich den Strom erhöhe, wird in meinem Bsp auch die Spannung 
größer
Jetzt dachte ich mir, ich erhöhe den Strom immer genau so weit, bis der 
AVR die Zahl erhöht.
also bis er zB von 4 auf 9mV umspringt und dann habe ich quasi gerade 
den "9mV-Bereich" erreicht und knapp über 6,5 mV. Meint ihr das geht?

Autor: Dominique Görsch (dgoersch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm doch eine entsprechend geringere Vref...

Autor: Gast3 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Musst Du mit Messtechnik der noetigen Genauigkeit nachmessen ob das so 
stimmt. Mein erster Gedanke - nein.

Gast3

Autor: Zworbel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst Ströme so langsam oder schnell erhöhen oder erniedrigen wie Du 
willst. Aber was hat das mit der Auflösung zu tun?

Es spielt doch gar keine Rolle ob eine zu messende Grösse schon Stunden 
vorher anliegt oder kurz vor der Messung gerade eingestellt wurde. (Ich 
rede hier wohlgemerkt nicht von Geschwindigkeiten in Grössenordnungen 
der Haltezeit oder analoger Parameter der Eingangsschaltung).

Die Spannung bei welcher der ADC Wert um ein Bit springt unterliegt 
genau den Ungenauigkeiten von den bei AD-Wandlern die Rede ist. Oder 
meinst Du wenn er misst zwischen den Bit-Werten genauer als genau links 
und rechts vom Kippen?

Mag sein, das mir Deine Idee nicht recht klargeworden ist. Vielleicht 
erklärst Du es anhand eines Diagrammes das den wahren Spannungswert auf 
der X und den AD-Ausgangswert auf der Y-Achse zeigt.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Meint ihr das geht?
Nein!
Das Stichwort dazu heißt Linearität und Monotonie des ADC.
Es ist nicht garantiert, dass 1 Inkrement immer gleich viel 
Spannungsunterschied repräsentiert. Dazu mehr im Datenblatt ;-)

Es gibt aber eine anderen Methode:
du gibst zusätzlich Rauschen in der Höhe (mindestens) eines Bits auf 
dein Signal. Dann machst du etliche Messungen und mittelst das Ergebnis 
aus diesen Messungen.

Autor: Der kleine Jimmy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja Mittelwert klingt gut.
Hier meine Solution:(Ist aber nicht praktikabel)


Man misst die Spannung auf einem Kanal des ADUs in 8 bit Auflösung, 
nimmt das gemessene Byte und erhöht es um eins um es danch auf einem DAU 
wieder auszugeben.
Danach nimmt man die Spannung des DAUs und zählt von ihr die Spannung 
des zu messenden Signals weg(subtrahierschaltung). Die so erzeugte 
Spannung muss man dann nurnoch mit 256 multiplizieren und schon erhält 
man eine Spannung die das niederwärtige Byte(leider bitweise invertiert) 
des Theoretischen 16Bit ADUs darstellt.
Das Ergebniss der bitweise invertierten zweiten Wandlung, also der der 
selbst erzeugten Spannung, ergibt zusammen mit dem Byte der ersten 
Wandlung einen 16 Bit wert der wohl hoch genug aufgelöst sein dürfte.

Natürlich ist das alles absoluter Schwachsinn, da die 
Bauteilungenauigkeiten soeinen Humbug absolut nicht zulassen würden.

Autor: Der kleine Jimmy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorraussetzung dafür müsste sein dass der ADU des AVRs immer abrundet.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähh ja ich mittel das Ergebnis ja schon (256Werte)
Aber dadurch erhöht sich vielleicht die Genauigkeit, nicht aber doch die 
Auflösung?!

Autor: Der kleine Jimmy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke schon dass sich damit auch die Auflösung erhöht.
Du musst die Werte bevor du sie Mittelst in größere Datentypen wie zum
Beispiel Float stecken.


Zu meinem Beschämen muss ich zugeben dass die von mir oben gepostete
Schaltung falsch ist.(bitte den Dateianhang löschen)
Dafür würde die neue Schaltung auch dann funktionieren wenn der ADU
nicht abrunden würde.

Autor: Michael Lenz (hochbett)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Alex,

das Standardverfahren besteht darin, daß Du Dein Meßsignal mit einem 
Operationsverstärker so weit verstärkst, daß der ADU zu etwa 70% 
ausgesteuert ist. Ich denke, dann gibt es mit der Auflösung die 
wenigsten Probleme.

Gruß,
 Michael

Autor: aaa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Standardloesung ist zb ein Modulationssignal draufzugeben, zB eine 
langsame Rampe und dann zu schauen wenn die Bits wackeln.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ aaa
meinst du mit wackeln, dass ich schaue
wenn der controller zB anzeigt
0,5      0,6       0,5        0,6     0,5 und eben so zwischen den 
werten hin und herspringt, die Spannung dann 0,55 beträgt?

@Michael Lenz

Das Problem ist, dass der Wert von 2,5V abweicht. Ginge also nur mit 
einem Differenzverstärker, und dazu bräuchte ich wieder genau die 
gleiche Spannung (sind nicht immer ganz genau 2,5V; mal werden mir 2,45 
mal 2,55V angezeigt); wenn sich da ein Fehler mit einspielt, wird dieser 
gleich vervielfacht.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Eine Standardloesung ist zb ein Modulationssignal draufzugeben, zB eine
>> langsame Rampe und dann zu schauen wenn die Bits wackeln.
:
> und eben so zwischen den
> werten hin und herspringt, die Spannung dann 0,55 beträgt?
Auch diese Idee ist kreativ und wird nicht funktionieren:
Es ist nicht jeder Schritt zwischen jedem Bit des ADCs gleich groß.
Stichwort Linearität, nähere Auskünfte dazu gibt das Datenblatt des 
Bausteins.

Autor: Michael Lenz (hochbett)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alex,
>
> Das Problem ist, dass der Wert von 2,5V abweicht. Ginge also nur mit
> einem Differenzverstärker, und dazu bräuchte ich wieder genau die
> gleiche Spannung (sind nicht immer ganz genau 2,5V; mal werden mir 2,45
> mal 2,55V angezeigt).
Es ist relativ egal, was angezeigt wird. Entscheidend ist, ob der Bias 
(d. h. die 2,5V) stabil sind. Wenn nein, hast Du ohnehin ein Problem.

> wenn sich da ein Fehler mit einspielt, wird dieser
> gleich vervielfacht.
Ja, und dann wieder durch die Verstärkung geteilt. Den Fehler wirst Du 
auch mit anderen Verfahren nicht los.

Poste am besten mal, um welche ominöse Schaltung es sich handelt. Du 
kennst das Problem mit der Glaskugel.


Gruß,
  Michael

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,


also es handelt sich um einen Hallsensor. Der zeigt bei keinem Feld 2,5V 
an. Ich zieh mit Hilfe des Programms noch 2,5V ab.
Sind diese stabil? Naja.
Also letztens bei der Eichung war das so:
0,000V bei der ersten Eichungsdurchführung
eine Weile vergeht, ich machs nochmal, dass es genauer wird
-0,004V beim 3.Mal, wie ich wieder kein Feld hatte:
-0,009V
Kann natürlich sein, dass diverse Störungsfelder da waren, ich weiß 
nicht. Wobeis beim Einschalten glaub ich wieder 0,0 waren.
Das ist aber nicht soo dramatisch, es geht ja nur um die Differenz.

Daher wollte ich auch versuchen, möglichst genau zu messen. Der maximale 
Fehler von ca. 0,0025V macht schon recht viel aus.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AD Wandler mit höherer Auflösung / Genauigkeit sind nicht mehr so tuerer 
und auch gar nicht so groß. Da ist der Aufwand mit den Extra OPs sogar 
eher größer. Man sollte z.B. einen LTC2400, MCP3421 oder ähnliches in 
Erwägung ziehen.

Für etwas (1-3 Bit) mehr Auflösung geht das mehrfache Auslesen des ADs, 
wenn genügend Rauschen oder Ersatzweise eine kleine Wechselspannung 
drauf ist. Die ungleiche Breite der Bitabstände ist da einer der 
Begrenzenden Faktoren.


Die Signalquelle ist immer noch nicht klar:
Wenn das ein Hallsensor mit Verstärker ist, sind die 2,5 V offset sehr 
Störend.

Ein reiner hallsensor ohne Verstärkung liefert eine kleine 
Differenzspannung zwischen 2 Punkten, die beide eine gewisse Spannung 
gegen GND hat. Die Auswertung erfolgt dann durch einen 
Differenzverstärker. Je nach Qualität des Sensors kann es da auch einen 
Relativ großen Offset geben.

Der Beschreibung nach scheint aber schon die Signalquelle nicht so genau 
zu sein. Dann hilft auch ein besserer AD wandler nicht.

Autor: oha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Hallsensoren bleibt man immer am Offsetproblem haengen. Ein besserer 
Wandler loest das Problem nicht wirklich, sondern verschiebt es nur.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte ich wegen dem Offset vielleicht ein Poti einbauen?

Autor: oha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das macht man besser in Software. Per Software hat man beliebige 
Aufloesung.

Autor: oha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt mit dem Hallsensor uebrigens zwei Offsets. Der Eine von den 
Hallsonde, und der Andere vom Restfeld. Dagegen kann man unter 
Umstaenden wie folgt vorgehen :
Den Offset der Hallsonde kriegt man weg, indem man keinen DC Strom 
anlegt, sondern einen AC Strom. Den Offset durch das Restfeld krieg man 
weg, in dem man die Sonde dreht.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also per software hab ich ihn schon eliminiert.
Meinte eigentlich nur zusätzlich, weil sich der ab und an mal um ein, 
zwei werte ändert.

>Den Offset der Hallsonde kriegt man weg, indem man keinen DC Strom
>anlegt, sondern einen AC Strom. Den Offset durch das Restfeld krieg man
>weg, in dem man die Sonde dreht.

meinst du den kompletten offset? weil da hab ich 2,5V.
Und wie ich 5V AC erzeuge, weiss ich leider auch nicht... naja, 
letzteren Tipp merk ich mir auf jeden Fall, thx ;)

Autor: Michael Lenz (hochbett)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Alex,

> also es handelt sich um einen Hallsensor. Der zeigt bei keinem Feld 2,5V
> an. Ich zieh mit Hilfe des Programms noch 2,5V ab.
> Sind diese stabil? Naja.
Ich denke, das ist das eigentliche Problem, das Du hast. Ein 
Rauschsignal kannst Du durch zeitliche Mittelung wegfiltern. Ein 
Driftsignal hat viel längere Mittelungszeiten.

> Kann natürlich sein, dass diverse Störungsfelder da waren, ich weiß
> nicht. Wobeis beim Einschalten glaub ich wieder 0,0 waren.
> Das ist aber nicht soo dramatisch, es geht ja nur um die Differenz.
Leg doch mal den Daumen auf den Sensor (zum Heizen - du kannst auch den 
Fön nehmen). Dann siehst Du, ob das ein Temperaturdrift ist.

Vielleicht kannst Du dann ja auch rausfinden, ob der Magnetfeldsensor 
die Temperaturabhängigkeit hat oder evtl. sogar der AD-Wandler. Ich 
vermute ja eher, es ist der Hallsensor.

Ich habe mal mit dem Magnetfeldsensor KMZ-51 gearbeitet. Das Magnetfeld 
wurde über den magnetoresistiven Effekt (Abhängigkeit des el. 
Widerstandes vom Magnetfeld) gemessen. Da gab es auch ein Driftproblem. 
Es wurde gelöst, indem der Widerstand einmal bei positivem und einmal 
bei negativem Strom gemessen wurde und anschließend beide Ergebnisse 
voneinander subtrahiert wurden. Das ist vom Prinzip her so ähnlich wie 
die Empfehlung, mit Wechselstrom zu messen.

Eventuell ist aber auch nur die eingesetzte Referenzspannungsquelle für 
die 2,5V schlecht. Wenn das Bauteil einen Eingang für eine externe 
Referenzspannung hat, hast Du Glück. Dann kannst Du eine genauere 
Referenzspannungsquelle nehmen.

(Wenn Du eine gute Referenzspannungsquelle brauchst, kannst Du mal bei 
Analog schauen. Die haben sehr gute, und man kann auch samplen bzw. bei 
Farnell bestellen.)

> Daher wollte ich auch versuchen, möglichst genau zu messen. Der maximale
> Fehler von ca. 0,0025V macht schon recht viel aus.
Wie gesagt: Ich glaube nicht, daß Du ein Auflösungsproblem oder ein 
Problem mit Rauschen hast, sondern ein Driftproblem.


Gruß,
  Michael

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.