Raketenmodellbau.org Portal > Forum > Rund um Elektronik und Programmierung > Elektronik allgemein > Sensoren > Genau Messung mit unterschiedlichen Offsets
Du kannst keine neue Antwort schreiben


Autor Thema 
Neil

99.9% harmless nerd


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 122041 , Genau Messung mit unterschiedlichen Offsets [Alter Beitrag31. Mai 2007 um 09:44]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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


Administrator

Tom

Registriert seit: Aug 2000

Wohnort: Neustadt

Verein: T2 , SOL-1

Beiträge: 5257

Status: Offline

Beitrag 122065 [Alter Beitrag31. Mai 2007 um 12:44]

[Melden] Profil von Tom anzeigen    Tom eine private Nachricht schicken   Besuche Tom's Homepage    Mehr Beiträge von Tom finden

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

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 122071 [Alter Beitrag31. Mai 2007 um 13:29]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

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


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 122076 [Alter Beitrag31. Mai 2007 um 13:55]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 122077 [Alter Beitrag31. Mai 2007 um 14:23]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

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


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 122079 [Alter Beitrag31. Mai 2007 um 15:26]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 122084 [Alter Beitrag31. Mai 2007 um 17:38]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

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 wink

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

[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben