Drucksensor->Messverstärker->Mikrocontroller? wie?

Guten Tag!

Ich habe eine Frage zur Sesnorik. Also ich möchte einen Drucksensor
über einen Messverstärker an einen Mikrocontroller anschließen.

folgendes weiß ich bisher:
Quelle: http://www.mts.ch/documents/Kraftmessbroschuere.pdf
Seite 12

>Die Ausgangsspannung Ua eines Sensors berechnet sich zu:

>Ua = c * Ub

>Hierbei ist Ub die Betriebsspannung und c ist der Kennwert des Sensors.
>Der Kennwert des Sensors c ist dem Prüfprotokoll zu entnehmen und liegt
>typischerweise im Bereich c = 1…3 mV/V. In Verbindung mit
>Betriebsspannungen Ub = 5…10 V ergeben sich typische
>Ausgangsspannungen Ua = 5…30 mV.

Also bekomme ich bei einem Sensor mit 2 mV/V Nennkennwert und einer
Versorgungsspannung von 10V eine Ausgangsspannung von 20mV zurück (Bei
voller Nennlast von z.B. 100kg) bei diesem Sensor
http://www.soemer.de/waegezellen/waegezelle-614-616…

So, nun muss ich doch diese maximalen 20mV Ausgangsspannung mit dem
Messverstärker verstärken… aber wie funktioniert das jetzt genau?
Besser gesagt was macht dieser Messverstärker mit meinem gewonnenen
Ausgangssignal? Was bekomme ich dann als Eingang an meinem
Mikrocontroller und wie kann ich das dann auswerten?
Muss ich den Spannungswert durch meine verfügbare Bitzahl dividieren und
erhalte die Stufen daraus und kann daraus wiederum meinen Druck auf dem
Sensor berechnen?
Ist es besser einen Messverstärker zu nehmen, der ein analoges Signal
ausgibt oder gleich ein digitales? Sry für die vielen fragen aber ich
bin momentan damit etwas überfordert… :frowning:

Gruß Toni

P.S. gleiche PDF S.19:
Heißt das, dass ich bei Volllast von (wieder beispielsweise 100kg)
maximal 10 V Ausgangsspannung am Verstärker habe und ohne Last dann 0V,
richtig?
Liege ich dann richtig, dass ich mit einem 16 Bit Mikrocontroller somit
in 1,5g Schritten messen könnte? (100000g/2^16)1,525g Schritten messen
kann? Da habe ich mich doch jetzt ganz stark verrechnet oder? %)

Ich danke euch schonmal!

So, nun muss ich doch diese maximalen 20mV Ausgangsspannung
mit dem
Messverstärker verstärken… aber wie funktioniert das jetzt
genau?

naja, simpel gesagt: aus einem schwachen signal wird ein starkes signal. üblicherweise werden für solche aufgaben operationsverstärker verwendet, die als differenzverstärker geschaltet sind (siehe z.b. wiki). die gibt es mehr oder weniger kompliziert. hängt halt davon ab, was du messen willst (z.b. wie schnell dein signal wechselt und ob du das „sehen“ möchtest).

Besser gesagt was macht dieser Messverstärker mit meinem
gewonnenen
Ausgangssignal?

der messverstärker verstärkt das signal. den bereich kann man über passende dimensionierung der bauteile wählen (sofern man keinen fertigen nutzt). dazu kommt noch, dass der messverstärker meist eine impedanzwandlung vornimmt, dass also das eingangssignal hochohmig abgegriffen wird (also kaum durch die „messung“ beeinflusst wird) und niederohmig weiter geleitet wird.

Was bekomme ich dann als Eingang an meinem
Mikrocontroller und wie kann ich das dann auswerten?

naja, der messverstärker liefert eigentlich nur wieder ein analoges signal zurück. das muss noch in eine digitale form gepresst werden. dazu verwendet man dann adc (analog digital converter). die können ein bestimmtes eingangssignal (z.b. 0-2,5V) in einen digitalen wert (z.b. 0x000h - 0xFFFh) umwandeln. diese adc gibt es einerseits als seperate bausteine, andererseits direkt in mikrocontrollern integriert. entscheident ist außerdem die auflösung (->„bitzahl“). denn der adc unterteilt den spannungsbereich in „stufen“, von denen jede einen festen wert hat. 12 bit auflösung ergibt z.b. 4096 stufen (2^12).

Muss ich den Spannungswert durch meine verfügbare Bitzahl
dividieren und
erhalte die Stufen daraus und kann daraus wiederum meinen
Druck auf dem
Sensor berechnen?

richtig. aber damit erhälst du eben nur den eingelesenen wert. du musst also auch noch wissen, welche verstärkung dein messverstärker hat.

Ist es besser einen Messverstärker zu nehmen, der ein analoges
Signal
ausgibt oder gleich ein digitales?

kommt drauf an, was besser zu der anwendung passt. wenn du z.b. einen controller mit integriertem adc hast, dann lohnt sich ein analoger verstärker, den man evt. noch selbst aufgebaut hat (billiger). hat dein controller keinen adn kann sich ein digitaler lohnen. ich würde es selbst aufbauen, aber dazu muss man sich schon ein wenig einarbeiten. das geht mit fertigen bauteilen sicherlich einfacher. für anfänger ist ein digitales signal sicherlich einfacher auszuwerten als ein analoges.

P.S. gleiche PDF S.19:
Heißt das, dass ich bei Volllast von (wieder beispielsweise
100kg)
maximal 10 V Ausgangsspannung am Verstärker habe und ohne
Last dann 0V,
richtig?

ohne das pdf gelesen zu haben: denke mal ja. übliche ausgänge sind 0-10V, -10V bis +10V, 0-20mA und 4-20mA. und es wird üblicherweise für einen kleinen messwert ein kleiner ausgabewert verwendet.

Liege ich dann richtig, dass ich mit einem 16 Bit
Mikrocontroller somit
in 1,5g Schritten messen könnte? (100000g/2^16)1,525g
Schritten messen
kann? Da habe ich mich doch jetzt ganz stark verrechnet oder?
%)

nö, sieht richtig aus. 2^16 ist ja 65536. aber wie gesagt: es kommt nicht darauf an, ob du einen 8bit oder einen 16bit controller hast. das bezeichnet nur die register"breite" (ob man also immer nur 8 bit zur zeit berechnen kann, oder direkt 16 bit). entscheident ist die auflösung des adc. viele handelsübliche mikrocontroller (z.b. c8051f00x von cygnal) sind 8bitter, haben aber (mehrere) 12bit adc. das bedeutet nur, dass du, wenn du mit dem eingelesenen wert rechnen willst, diesen wert teilen muss. (oder eben bei dem 16bit-controller in einer rechnung verarbeiten kannst).

aus sicht des programmierers spielt das eigentlich nur eine rolle beim lesen der werte aus den registern oder wenn man direkt in assembler schreibt. in c/c++ etc. übernimmt es der compiler, die werte richtig zu „zerlegen“.

Danke für eure Antworten! =)

Nur nochmal zum Verständnis eine kurze Abfolge, wie ich das jetzt verstanden habe.
Also ich habe folgendes:
Drucksensor:
Nennkennwert: 2mv/V
Messbereich: 0 bis 100kg
Referenzspeisespannung: 5VDC
Messverstärker:
Gleichspannungsversorgung: +15V / - 15V
Von Verstärkung steht da bei besten Willen nichts im Datenblat!?
Mikrocontroller:
ADC Eingangsspannung: 3,3V
ADC Auflösung: 10bit

So nun zum wesentlichen:
Ich lege an den Sensor über den Messverstärker eine Spannung von 5V (Referenzspannung) an. Somit bekomme ich bei maximaler Belastung (Nennlast) 2mV/V * 5V = 10mV als Ausgangsspannung (Ausgangsspannungbereich = 0mV bis 10mV) am Sensor. Diese 0mV bis 10mV lese ich wiederum am Messverstärker ein und Verstärke das Signal auf einen Bereich von 0 bis 3,3V, wie sie am Mikrocontroller ADC gefordert wird. Die 3,3V entsprechen also wieder meiner vollen Belastung, sprich der 10mV (neuer verstärkter Bereich = 0 bis 3,3V.
Nun habe ich am Mikrocontroller ADC 10bit Auflösung, d.h. 2^10 = 1024 Stufen. Somit teile ich meinen Bereich 0V bis 3,3V und erhalte für eine Stufe rund 3,22mV.

Nun ein Beispiel:
Wenn ich zum Beispiel den Sensor mit 30 kg belaste, habe ich vom Sensor über den Messverstärker ein verstärktes Ausgangssignal von 2mV/V * 5V / 100kg * 30kg = 3mV. Diese 3mV liegen nun an meinem ADC Port an, woraus mir mein Mikrocontroller einen digitalen Wert liefert:
Da liegt jetzt mein Problem, er müsste mir sozusagen eine 1 liefern, da es die erste Stufe wäre… Da habe ich mich doch eindeutig irgendwo vermacht oder?

Danke nochmal für die Hilfe!

Gruß Toni

Problem hat sich gelöst. Hätte nur 0,003V * 3,3V / (1/100kg) = 0,99V rechnen müssen, wodurch ich einen Digitalwert von 307 erhalte etc.
Also hatte ich das wichtigste, nämlich die Verstärkung vergessen… ^^

Gruß Toni

richtig! die verstärkung steht zwar nicht direkt dabei, aber du hast es schon richtig gemacht.