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?
Musst Du mit Messtechnik der noetigen Genauigkeit nachmessen ob das so stimmt. Mein erster Gedanke - nein. Gast3
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.
> 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.
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.
Ähh ja ich mittel das Ergebnis ja schon (256Werte) Aber dadurch erhöht sich vielleicht die Genauigkeit, nicht aber doch die Auflösung?!
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.
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
Eine Standardloesung ist zb ein Modulationssignal draufzugeben, zB eine langsame Rampe und dann zu schauen wenn die Bits wackeln.
@ 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.
>> 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.
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
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.
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.
Mit Hallsensoren bleibt man immer am Offsetproblem haengen. Ein besserer Wandler loest das Problem nicht wirklich, sondern verschiebt es nur.
Sollte ich wegen dem Offset vielleicht ein Poti einbauen?
Nein, das macht man besser in Software. Per Software hat man beliebige Aufloesung.
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.
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 ;)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.