mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik DMS Drucksensor auslesen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Heribert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, liebe Freunde der elektronischen Baukunst.

Ein Freund von mir arbeitet zur Zeit an seinem Abschlussprojekt zum 
Maschinenbautechniker, in dessen Rahmen er hydraulische Versuchsstation 
auf den neusten Stand der Technik bringen soll. Verwendet wird diese 
Prüfstation, um Zug- und Druckspannung in einem eingespannten Bauteil 
einzubringen und dann das Verhältnis Strecke(Verformung)/Druck grafisch 
darzustellen. Das passierte bisher ziemlich oldschool mit externem 
Messverstärker Baujahr 1930 und einem einfachen Farbpapier in dem die 
Auslenkung eingeritzt wird.

Ich helfe ihm jetzt die Sache in eine digitale Form zu bringen um alle 
gemessen Daten später am PC auszuwerten.

Es handelt sich um ein P8AP Absolutdruckaufnehmer von HBM in 
Vier-Leiter-Ausführung.
(Datenblatt: http://www.hottinger.sk/Prospekty/Tlak/P8AP/p_P8AP_e.pdf)

Der Sensor misst bis 200 Bar, max. aufgebaut werden am Prüfstand 120 
Bar.
Wenn ich das richtig verstanden habe, liegt die Empfindlichkeit bei 2 
mV/V, was bei voller Belastung eine Spannung von 10 mV ergibt, wenn der 
Sensor mit 5 V gespeist wird.

Das ganze Projekt soll über einen Arduino realisiert werden, was mich 
zum eigentlichen Problem führt:


Wenn ich das richtig verstanden habe, dann ziehe ich aus dem Datenblatt, 
dass pro 1 Bar eine Spannung 0,01/200=50 µV  abfallen. Der Arduino hat 
einen 12 Bit A/D, ergo löst er 5 V (maximal zulässige Spannung am 
Analogeingang)/ 1024= 0,005 V auf.

Und die Frage ist jetzt: Kann ich einen A/D Wandler zwischen DMS Sensor 
und Arduino hängen, der z.B. mit 16 Bit auflöst und somit ungemein 
genauer misst um mir die Mühen einer Verstärkerschaltung zu sparen? Mein 
großes Problem liegt darin, dass ich leider keine Ahnung davon habe, wie 
ich die minimale Spannungsänderung des Sensors fein und genau genug mit 
einem Arduino auslesen kann. Und bei Gott, wenn ich mir noch einen Tag 
hypertheoretische Forenbeiträge durchlese um mir einen DMS 
Messverstärker selber zu bauen, glüht mir die Birne durch.

TL;DR
Suche eine Möglichkeit DMS Sensor an Arduino UNO auszulesen, möglichst 
DAU-gerecht, damit ich endlich wieder ruhig schlafen kann.


Und bitte nicht gleich schlagen, E-Technik und ich hatten in der 
Oberstufe mal ne Affäre, aber danach haben wir uns getrennt und ich hab 
die Ihre Nummer weggeschmissen. Sie klopft aber immer wieder mal an 
meine Tür und ich fühle mich dann wie beim ersten Mal...

Beste Grüße und Danke für jedwegen Input!

Autor: Dirk D. (onemintyulep)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe keinen Plan vom Arduino, aber gerüchteweise kannst du eine 
interne Referenz von 1.1V nutzen.
analogReference(INTERNAL1V1)
Oder du kannst eine externe Referenzspannung am AREF pin anlegen
analogReference(EXTERNAL)

Oder du baust einen einfachen nicht invertierenden Verstärker mit einem 
OP Amp. Dazu brauchst du einen Rail-To-Rail IO OpAmp (vor allem der 
Input muss 0V einschliessen, wenn du ihn mit 5V betreibst) die Schaltung 
kannst du googlen.

Autor: Daniel B. (daniel_3d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist du sicher, dass du einen 12bit ADC hast?

Autor: Martin B. (ratazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde sogar über die 16 bit gehen auf 24 bit Wandler

Wenn Du es mit wenig Aufwand haben willst könntest Du z.B. einen ADS1231 
benutzen. Der ist für solche Zwecke gedacht und Du brauchst keinen 
weiteren Vorverstärker. Gibt es auch von anderen Firmen.
Der macht maximal 80 Samples/s. Reicht das denn für den Zweck?

Die Versorgungsspannung für die Messbrücke (und den chip) sollte 
möglichst rauscharm sein, sonst vermasselst Du da Einiges.

Autor: Florian R. (Firma: TU Wien) (frist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wenn's billig sein soll besorg dir ein HX711 Modul und schließ den 
Sensor da an, dann hast du eine ertige Arduino Library und unzählige 
Beispiele, allerdings mit billigen Wägebalken, aber dein Sensor verhält 
sich genauso und gleich angeschlossen.

Grüße
Flo

PS: Ich hab irgendwo noch übrige HX71q Module, kannst dich per PM 
melden, dann Versuch ich eines für dich zu finden, geht schneller als 
direkt aus China.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Google mal nach HX771. Der macht genau das, was du willst.

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
*HX711

Autor: Martin B. (ratazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den HX 711 kannte ich noch gar nicht.

Der macht aber auch nur maximal 80 Samples/s

Die Frage wäre, ob das TO reicht. Ich nehme mal an da wird ein Versuch 
durchgefahren. Die Frage ist wie schnell?

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin B. schrieb:
> Die Frage wäre, ob das TO reicht. Ich nehme mal an da wird ein Versuch
> durchgefahren. Die Frage ist wie schnell?

Da es bis jetzt mit Nadel auf Papier aufgezeichnet wird, bin ich mal 
davon ausgegangen, dass ca. 1 Sample/s ausreichend ist.

Autor: Martin B. (ratazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl schrieb:
> Da es bis jetzt mit Nadel auf Papier aufgezeichnet wird, bin ich mal
> davon ausgegangen, dass ca. 1 Sample/s ausreichend ist.

Da ist was dran.

HX711 hat ähnliche Daten wie der ADS1231. (noise performance etc.)

Autor: Heribert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Erstmal vielen Dank für die Vorschläge und Tipps, ich versuche mal drauf 
einzugehen.

1.
Dirk D. schrieb:
> Ich habe keinen Plan vom Arduino, aber gerüchteweise kannst du eine
> interne Referenz von 1.1V nutzen.
> analogReference(INTERNAL1V1)
> Oder du kannst eine externe Referenzspannung am AREF pin anlegen
> analogReference(EXTERNAL)

Prinzipiell möglich. Tatsächlich käme ich aber über 
analogReference(INTERNAL1V1) nicht wirklich in die Nähe meiner nötigen 
Empfindlichkeit. 1,1 V / 1024 sind halt immernoch 1 mV Abstufungen und 
somit zu groß.

2.
Daniel B. schrieb:
> Bist du sicher, dass du einen 12bit ADC hast?

Du hast recht. Intern verwendet der Arduino einen 10 Bit A/D_Wandler. 
Mein Irrtum bleibt aber wohl ohne Folgen, da ich (warum auch immer) in 
meinen Beispielen immer mit 1024 als maximal mögliche Messwerte 
gerechnet habe. Puhhh, Schwein gehabt. ;)

3.
Karl, Martin:

Der HX711 sieht interessant aus. Ich habe auf Github verschiedene 
Projekte mit entsprechenden Libs dazu gefunden und denke, dass das 
Anpassen auf meine Umgebung keine großen Probleme machen wird.

Da ich mir ehrlich gesagt zukünftige Arbeit im Bereich IC-Beschaltung 
sparen möchte, denke ich, dass es gar nicht so schlecht wäre, dieses 
Produkt hier zu kaufen:

https://www.mouser.de/ProductDetail/DFRobot/SEN0160?qs=sGAEpiMZZMsB9HsreUc%252bidQ6G06HM4H9p8hDqxKnGjg%3d

Als IC kommt ein HX711 zum einsatz, es ist halt alles schon 
steckerfertig verbaut und somit ideal für das Projekt geeignet.

Was sagt ihr dazu? Wenn ich das Datenblatt des HX711 richtig verstanden 
habe, dann wird der Gain in Hardware festgelegt. Bei so einem fertig 
verbauten Bauteil, frage ich mich schon, wie das im nachhinein noch zu 
ändern wäre.

Was mir noch zu denken gibt: Die Wäge-Projekte mi dem HX711 beinhalten 
auch immer eine Eichung des Sensors, sprich, die Wage wird mit einer 
definierten Masse belastet.

Diese Art der Einstellungsmöglichkeit habe ich leider nicht. Die 
Hydraulische Presse ist stufenlos regelbar und es ist mir so nicht 
möglich einen definierten Druck auf den Sensor auszuüben.
Also richtig korrekt kann ich das so auch nicht machen, aber ich dachte 
dran, die gemessene Ausgangsspannung am Sensor ins Verhältnis zum 
maximalen Wert zu setzen und somit anteilig den anliegenden Druck zu 
errechnen. Das wird zwar ziemlich ungenau, aber ich sehe grade keinen 
anderen Weg.


Darum, dass ich Daten dann in Zweier-Komplementären bekomme, muss ich 
wohl später kümmern. Ich weis noch gar nicht, ob das überhaupt 
Auswirkungen auf den ABlauf hat. Wenn ich das richtige sehe, kann der 
Drucksensor keinen negativen Wert messen, ergo alle gesendete 24Bit 
Zahlen sind positiv.

Autor: Martin B. (ratazong)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heribert schrieb:
> Hallo!
>
>
>
> Darum, dass ich Daten dann in Zweier-Komplementären bekomme, muss ich
> wohl später kümmern. Ich weis noch gar nicht, ob das überhaupt
> Auswirkungen auf den ABlauf hat. Wenn ich das richtige sehe, kann der
> Drucksensor keinen negativen Wert messen, ergo alle gesendete 24Bit
> Zahlen sind positiv.

Nein, die Zahlen liegen im Zweierkomplemment vor und können auch negativ 
sein.

Im Datenblatt des Sensors ist die Empfindlichkeit in mV/V bezogen auf 
den Endwert angegeben. Damit kannst Du rechnen, wenn Du nicht 
kalibrieren kannst. Dazu musst Du aber die Versorgungsspannung der 
Messbrücke kennen. Zur Not ausmessen. (HX 711 hat eine 
Regelungsschaltung für die Messbrückenspannung on board, was ja toll 
ist.)
Den Nullpunktfehler wirst Du wahrscheinlich aber noch getrennt 
betrachten müssen. DMS haben in der Regel einen erheblichen 
Nullpunktfehler. Den bei Belastung null messen und abziehen.

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.