Autor | Thema |
---|---|
Neil
99.9% harmless nerd
Registriert seit: Aug 2000 Wohnort: Delft Verein: SOLARIS Beiträge: 7776 Status: Offline |
Beitrag 122041
, Genau Messung mit unterschiedlichen Offsets
[31. Mai 2007 um 09:44]
Hallo,
folgendes Problem stellt sich mir gerade. Ich möchte eine sehr kleine Änderung des Signals mit einem AD-Wandler aufnehmen. Diese Änderung kann aber in Unterschiedlichen Bereichen liegen. Z.B. messe ich die Temperatur mal zwischen 5 und 6°C und einmal zwischen 20 und 21°C. Ich könnte jetzt den Messbereich des AD-Wandlers so aufweiten, das er von 5-21°C geht. Leider wird dadurch die Auflösung gröber und ich kann in dem eigentlich interessanten Bereich nicht mehr genau messen. Daher kam mir folgende Lösung. Die Messkette sieht so aus: 1. Sensor 2. Signalverstärker 3. AD-Wandler Ich würde die Messkette wie folgt erweitern: 1. Sensor 2. Analogwertspeicher 3. Subtraktionsglied 4. Signalverstärker 5. AD-Wandler Der Analogwertspeicher merkt sich das Signal (Spannung oder Strom) analog wenn ein externes Signal anliegt. Das Subtraktionsglied zieht dann vom aktuellen Messwert den gespeicherten ab. Auf oberes Beispiel bezogen würde aus so aussehen: - Startwert: 5°C - Speichert: 5°C - Signal von Subtraktionsglied: 0°C - gemessenes Signal: 0-1°C oder - Startwert: 20°C - Speichert: 20°C - Signal von Subtraktionsglied: 0°C - gemessenes Signal: 0-1°C Ich könnte dann den Signalverstärker immer auf den gleichen Offset und Verstärkung halten und somit den AD-Wandler immer optimal mit der Auflösung fahren. Ich weiß das es für Kraftmessdosen Brückenverstärker gibt, die man mit einem externen Signal "Nullen" kann wie z.B. die Targa Taste an einer Waage. Wie wird das aber realisiert? Was ist die einfachste Umsetzung? Bei Conrad habe ich mal ICs gesehen die analoge Werte speichern können. Das Subtraktionsglied ist eine Operationsverstärkerschaltung. Ich kann mir aber auch vorstellen, da sowas eine häufige Anwendung ist, und es da schon fertige Lösung (in einem Baustein) exisitieren. Gruß Neil Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu. |
Tom
Grand Master of Rocketry
Registriert seit: Aug 2000 Wohnort: Neustadt Verein: T2 , SOL-1 Beiträge: 5257 Status: Offline |
Beitrag 122065
[31. Mai 2007 um 12:44]
Hallo Neil,
wende Dich mal an diese Fa. hier: http://www.atrie.de/Produkte/ElektronischeBaugruppen.shtml die könnten eventuell weiterhelfen. Gruß Tom |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 122071
[31. Mai 2007 um 13:29]
Zuerst solltest Du genau genau definieren. Wenn Du mit einem 16Bit-Wandler an den Start gehst, wäre die Auflösung bei einem Meßbereich von 0-65°C ca. 1/1000°C. Selbst wenn Du nur 12Bit nutzen kannst, bleiben immer immer noch ca 1/60 °C. Die "Tara" wäre dann einfach eine digitale Subtraktion.
Außerdem musst Du definieren, ob nur die Differenzen genau gemessen werden sollen, oder Du einen genauen Absolutwert, brauchst. In Deinem Beispiel oben: Woher weißt Du beim Tara, wie die genaue Temperatur ist? Auch ist der Zeitraum interessant, über den Du messen willst, d.h. wie lange der Analogspeicher die Spannung halten soll. Im einfachsten Fall könnte das ein Kondensator mit geringem Leckstrom an einem Impedanzwandler sein, der am Minus-Eingang eines Spannungsaddierers hängt. Vor der Messung wird er mit dem +Eingang des Addierers verbunden, lädt sich auf dessen Eingangsspannung auf und bildet nach Trennung die Referenz. Grüße Malte Geändert von hybrid am 31. Mai 2007 um 13:33 |
Neil
99.9% harmless nerd
Registriert seit: Aug 2000 Wohnort: Delft Verein: SOLARIS Beiträge: 7776 Status: Offline |
Beitrag 122076
[31. Mai 2007 um 13:55]
Hi,
es sollte schon auf 1/10.000 des absolutwertes genau sein. Z.B. 10kg maximal Masse die gewogen wird, aber 1g Auflösung. Der AD-Wandler den ich anstrebe hat keine 16 Bit Auflösung sondern nur 12. Der Wert sollte schon für einige Minuten gehalten werden. Der absolute Wert ist dabei völlig egal. Mir ist die Differenz wichtig. Meine Idee zielt in die Richtung, das eine Schaltung wie angedacht einfacher umzusetzen ist als ein 16Bit AD-Wandler. Da kommt ja noch das Problem hinzu, das mein Signal evtl. verrauscht und ich Probleme bekomme überhaupt ein Signal zu haben was sinnvolle Werte liefert für die hohe Auflösung. Zumal ich schon ein Messmodul mit 12 Bit habe und ich mir nicht extra eines zulegen möchte mit 16 Bit. Die Messkette steht auch schon. Daher war mein Gedanke so, das ich einfach diese Schaltung dazwischen klemme. Mir ist klar, das der Sensor den ganzen Messbereich abdecken muss und das in einer gut genügenden Qualität. Gruß Neil Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu. |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 122077
[31. Mai 2007 um 14:23]
Vielleicht würde dann auch schon ein Spannungsteiler (Poti) mit ein paar kOhm zwischen + und - und den Schleifer an einem Offset-Eingang reichen, um den Meßbereich in den gewünschten Bereich zu verschieben?! Das Rauschen wird dadurch natürlich nicht geringer.
12Bit sind immerhin schon 4096 Stufen. Mit zeitlichem Oversampling kannst Du die Auflösung steigern und das Rauschen vermindern! http://atmel.com/dyn/resources/prod_documents/doc8003.pdf Geht dann natürlich zulasten der zeitliche Auflösung. Grüße Malte |
Neil
99.9% harmless nerd
Registriert seit: Aug 2000 Wohnort: Delft Verein: SOLARIS Beiträge: 7776 Status: Offline |
Beitrag 122079
[31. Mai 2007 um 15:26]
Hi,
so einen ähnlichen Gedanken hatte ich auch gerade gehabt. Ich wollte in der tat einen ATMEL nutzen. Dieser könnte über einen DA-Ausgang eine Spannung generieren und diese dient dann als Offset für den eigentlichen Verstärker. Das wäre wie das "am Poti drehen", nur das es der ATMEL selber macht. Das allerdings nur in dem Rahmen wie die Auflösung des DA-Wandlers ist. Er dreht sozusagen bis der gemessene Wert 0 ist. Das behält er dann bei. Die Oversampling Idee ist auch gut, der Messvorgang ist zeitlich nicht kritisch. Wenn ich nachher in einem Bereich bin, der mir eine Messung (die zeitlich gemittelte) pro Sekunde liefert, bin ich zufrieden. Danke für die Tipps, werde mir die mal durch den Kopf gehen lassen. Gruß Neil Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu. |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 122084
[31. Mai 2007 um 17:38]
Der Atmel hat keinen Analog-Ausgang, Du kannst ihn per R2R Netzwerk http://www.avr-asm-tutorial.net/avr_en/AVR_DAC.html oder mittels PWM als einstellbare Spannungsquelle benutzen. Habe sowas vor ein paar Wochen gerade gemacht. Allerdings mit nur elf Spannungswerten.
Erster Ansatz mit R2R: Eigentlich hätten 4Bit gereicht. Da ich aber als Maximalwert elf habe und nicht 15, war eine Vollausteuerung bis 5V nicht möglich, bzw sehr ungenau, wenn ich die elf Werte auf die 16 Stufen verteilt hätte. Man hat mit einer handgelöteten 1% R2R-Leiter natürlich auch eine ganz schöne Ungenauigkeit. Bei 8Bit wäre die ganze Schaltung auch viel zu groß geworden... Zweiter Ansatz mit PWM hat hingehauen. Über ein kleines RC-Glied gefiltert kommen jetzt Spannungen von 0 bis 5V per Taster einstellbar in 0,5V-Schritten heraus. Die jeweils letzte Einstellung wird ins EEPROM geschrieben, so daß beim Einschalten der letzte Zustand wieder hergestellt wird. Die Spannungsstufen stimmen jetzt sehr genau, aber leider schlagen die Flanken der PWM mit ca 12mV durch. Für Deine Anforderung müsste man das noch mal durch einemn Tiefpass jagen, oder einen besseren Filterkondensator verwenden. Ich habe einen Tantal-Kondi genommen, den ich mal in einer großen Tüte gekauft habe Ein ATTiny13, zwei Kondis, ein Widerstand und zwei Taster reichen. Sind ca 180 Zeilen locker programmiertes C mit vielen Konstanten. Ergibt ~330Bytes Flash. Wegen der wenigen Pins des Tiny13 ist allerdings der Code, der auf den Ports rumorgelt, etwas häßlich geworden. Wenn Du möchtest und mir sagst, für welchen Prozzi Du das haben möchtest, kann ich es Dir auf 256 Werte und den Prozessor umfrickeln und posten. Den Teil mit der Tastaturabfrage und ins EEPROM schreiben kannst Du ja wegwerfen und durch eine kleine Routine ersetzten, die sich Deine Eingangsspannung "merkt". Grüße Malte Geändert von hybrid am 31. Mai 2007 um 17:47 |