Forum: Mikrocontroller und Digitale Elektronik ADS1115 auswertung messwerte einstellung


von Christian B. (baunty)


Angehängte Dateien:

Lesenswert?

Hallo zusammen Ich habe hier ja schon etwas über den ADS115 lesen können 
und mich informiert es bleiben trotzdem ein paar fragen offen. Wenn das 
ja ein 16Bit gerät ist warum ist der messwert dan 0.1875 mV bei maximal 
6.144V
das ergit ja ein umrechen facktor von 2hoch 15 und nicht 16.
Hintergrund der suche nach lösung bzw verständis ist das ich am Rasberry 
ein ADS1115 angebaut habe und einen drucksensor von 60 PSI wobei 0PSI 
0.5V 30PSI 2.5V und 60PSI 4.5V sind der anschluss am PI ist wie im bild.

der Leseteil für druck im script sieht so aus:

1
 value = [0]
2
  # Read ADC channel 0
3
  value[0] = adc.read_adc(0, gain=GAIN)
4
  # Ratio of 15 bit value to max volts determines volts
5
  volts = value[0] / 32768.0 * 6.144
6
  # Tests shows linear relationship between psi & voltage:
7
  psi = 13.33 * (volts -0.5)
8
  # Bar umrechnung
9
  bar = psi * 0.0689475729
aber das messergebnis weicht von einem analogen Druckmesser um ca 0.5 
bar ab.
und schwankt extrem obwohl ich ein 1nF und auch schon ein 10nF 
kondensator zur stabieliesierung versucht habe.
Vielleicht hat ja jemand eine idea.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Christian B. schrieb:
> Wenn das ja ein 16Bit gerät ist
Eins vorneweg: auf dieser Platine und mit dieser Beschaltung kommen da 
niemals mehr als 10..12 verwertbare Bit heraus. Aber das merkst du ja 
selber:
>>> aber das messergebnis ... schwankt extrem
Definiere "extrem"...

> Ich habe hier ja schon etwas über den ADS115 lesen können
So einen Baustein gibt es nicht. Also gut, ein Schlamperfehler. Die 
lassen wir mal durchgehen...

> Wenn das ja ein 16Bit gerät ist warum ist der messwert dan 0.1875 mV
> bei maximal 6.144V
Du stueerst den ADC doch an, dann solltest du doch wissen, was da 
passiert.
Für mich wäre interessant: was ist GAIN?

> das messergebnis weicht von einem analogen Druckmesser um ca 0.5 bar ab.
Was misst du mit einem Messgerät? Also ganz ohne deine RPi-Schaltung 
nur mit Drucksensor und Multimeter: passt das Signal des Sensors 
zusammen mit dem Messwert zum analogen Drucksensor?
Wenn das stimmt, dann kanst du kontrollieren, ob die Spannung nach dem 
ADC richtig hereinkommt.
Und danach kannst du noch die Umrechnung vom der Spannung in den Druck 
kontrollieren.

BTW: warum rechnest du eigentlich nicht gleich den ADC-Wert in den Druck 
um? Die Spannung ist doch nur ein lästiger Umweg...

: Bearbeitet durch Moderator
von Christian B. (baunty)


Lesenswert?

Hallo Lothar,

sorry für den Tip fehler ADS1115 so sollte es schon besser Passen.
extreme Schwankung definiere ich mit die Pumpe ist aus und ein kugelhan 
vor den beiden Messinstromenten (analog und digital)geschlossen somit 
sollte keine druckschwankung vorkommen. Schwangt der digitale messwert 
von 0.5 Bar bis zu 2.0 Bar.

Gain bezeichnet den Spannungsbereich in diesem fall 2/3 ist bis 6.144V

Das Digitale Messgerät schwangt zwischen 1,42 Volt und 1,45 Volt wobei 
dann die Ausgabe an der Console 1.040V und 1.022V anzeigt was allerdings 
anscheinen durch die rundung schon 0.1 bar unterschied macht.

Wenn ich das jetzt mal so Betrachte würde ich fast behaupten das diese 
schwankungen durch die (groben 60PSI) kommen.

Wenn ich mal wüsste was der maximale druck der Pumpe am Filter sein 
könnte dann könnte ich mir einen Nidrigeren drucksensor bestellen. weil 
dann währe ja der bereich feiner abgestimmt.

von Achim S. (Gast)


Lesenswert?

Christian B. schrieb:
> Gain bezeichnet den Spannungsbereich in diesem fall 2/3 ist bis 6.144V

Christian B. schrieb:
> das ergit ja ein umrechen facktor von 2hoch 15 und nicht 16.

6.114V ist kein Bereich sondern nur eine Spannung. Für einen Bereich 
brauchst du eine Maximalspannung und eine Minimalspannung. Die Differenz 
von beiden durch 2^16 ergibt deine Auflösung. Wenn du "ein Bit 
vermisst", dann überleg dir, was der Minimalwert deines Bereichs ist.

Christian B. schrieb:
> wobei 0PSI 0.5V ... 60PSI 4.5V

Die Empfindlichkeit deiner Messanordnung ist also 4V/60PSI (bzw. ca. 
1V/Bar)?

Christian B. schrieb:
> Schwangt der digitale messwert
> von 0.5 Bar bis zu 2.0 Bar.

Christian B. schrieb:
> Das Digitale Messgerät schwangt zwischen 1,42 Volt und 1,45 Volt

Der Messwert aus dem ADC schwankt also um ~1,5V (entsprechend 1,5 Bar). 
Während ein Multimeter an der selben Stelle nur um 10mV wackelt?

Dann ist etwas ganz grundsätzliches mit deinem Aufbau im Argen. Es ist 
sicher eine gute Idee, einen Sensor mit passenden Messbereich zu 
verwenden. Aber so große Schwankungen über den halben Messbereich des 
Sensors kommen nicht durch "ungünstige Messbereiche" zustande sonder nur 
durch "grundsätzliche Fehler".

Christian B. schrieb:
> und schwankt extrem obwohl ich ein 1nF und auch schon ein 10nF

Was für einen Drucksensor verwendest du denn (bitte Link zum 
Datenblatt). Vielleicht mag der ja keine kapazitiven Lasten am Ausgang 
und fängt an zu schwingen? Das Multimeter im DC-Messbereich mittelt 
diese Schwingungen weg und zeigt den Mittelwert an. Bekommst du mit dem 
Multimeter denn eine Anzeige, wenn du in den AC-Messbereich schaltest?

Christian B. schrieb:
> Das Digitale Messgerät schwangt zwischen 1,42 Volt und 1,45 Volt wobei
> dann die Ausgabe an der Console 1.040V und 1.022V anzeigt was allerdings
> anscheinen durch die rundung schon 0.1 bar unterschied macht.

Nun bin ich etwas verwirrst. Ist das "digitale Messgerät" dein Aufbau 
mit ADC und RPi? Dann würde es nicht dazu passen, dass du jetzt von 
0,1Bar Schankungen sprichst, weiter oben von Schwankungen zwischen 
0,5Bar und 2Bar.

Auch die "Ausgabe an der Console" (die wohl vom RPi stammt) schankt nur 
um +-10mV, was nicht zu den zuvor beschriebenen Druckschwankungen passt.

Kannst du nochmal übersichtlich sortieren, was du womit misst und was 
dabei wie stark schwankt und voneinander abweicht?

von Mikro 7. (mikro77)


Lesenswert?

Ich habe letztens so ein Breakout Board in der Hand gehabt. Am Pi sah 
das ganz gut aus.

Christian B. schrieb:
> Hallo zusammen Ich habe hier ja schon etwas über den ADS115 lesen können
> und mich informiert es bleiben trotzdem ein paar fragen offen. Wenn das
> ja ein 16Bit gerät ist warum ist der messwert dan 0.1875 mV bei maximal
> 6.144V

15 Bit + Sign

btw: Default sind +-2.048V. Auch bei höheren Messbereichen darf der 
Eingang nicht VDD überschreiten (was effektiv dazu führt, dass man 
höhere Messbereiche nicht ausfahren kann).

> das ergit ja ein umrechen facktor von 2hoch 15 und nicht 16.

Passt dann, oder? (habe jetzt nicht nachgerechnet)

> Hintergrund der suche nach lösung bzw verständis ist das ich am Rasberry
> ein ADS1115 angebaut habe und einen drucksensor von 60 PSI wobei 0PSI

Tip: Nimm ein Poti/Spindelregler als Spannungsteiler zum Testen und 
prüfe damit, wenn du die Quelle des Problems nicht eindeutig 
identifizieren kannst.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Christian B. schrieb:
> Wenn ich das jetzt mal so Betrachte würde ich fast behaupten das diese
> schwankungen durch die (groben 60PSI) kommen.
Ich wollte dir eigentlich vermitteln: nicht vermuten, sondern das 
Problem aufteilen. Leg eine definierte Spannung an den ADC an und 
kontrolliere, ob du diese Spannung misst.

> Das Digitale Messgerät schwangt zwischen 1,42 Volt und 1,45 Volt wobei
> dann die Ausgabe an der Console 1.040V und 1.022V anzeigt
Ja, da fehlt doch ein halbes Volt.

Christian B. schrieb:
> # Tests shows linear relationship between psi & voltage:
Da muss man eignetlich keinen Test machen, sondern nur das Datenblatt 
anschauen.

von Christian B. (baunty)


Angehängte Dateien:

Lesenswert?

Alles was ich an Daten gefunden habe siehe Bilder mit dem Multimeter 
gemessen 1,42v was Ca 1 bar ergibt analog Druck Messer zeigt wie auf dem 
Bild zu sehen an.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Christian B. schrieb:
> 1,42v was Ca 1 bar
Wie kommst du auf diesen Schluss?
1 Bar sind 15psi und damit laut Datenblatt ca. 2,5V.

Von daher passen die angezeigten 0,6 Bar gut zu den gemessenen 1,4V. 
Wobei der Druckmesser etwa 0,1 Bar zu viel anzeigt. Denn dem Sensor 
traue ich da mehr als diesem Plastikmesswerk...

von Christian B. (baunty)


Angehängte Dateien:

Lesenswert?

Das währe beim 30 psi so es ist aber der 60 Psi
Oder verstehe ich das Datenblatt nicht?

: Bearbeitet durch User
von Christian B. (baunty)


Lesenswert?

Aufbau und Teil des Script von diesem Link

http://www.rototron.info/raspberry-pi-analog-water-sensor-tutorial/

Ich glaube balt es ist am sinnvollsten die 0,5v für 0psi von dem 
Messwert value[0] abzuziehen frage ist für mich gerade nur wie ich das 
da abziehe weil dann kann ich ja sagen das 1psi 0,06666v sind wen ich 
mich verrechnet habe Rechnung

von Achim S. (Gast)


Lesenswert?

Christian B. schrieb:
> Alles was ich an Daten gefunden habe

Warum zeigst du ein abgeschnittenes Bild von einem Datenblatt statt 
einfach auf die Quelle zu verlinken?

Christian B. schrieb:
> siehe Bilder mit dem Multimeter
> gemessen 1,42v was Ca 1 bar ergibt analog Druck Messer zeigt wie auf dem
> Bild zu sehen an.


Das ist leider immer noch nicht die übersichtliche Zusammenstellung der 
verschiedenen Werte. Aber zusammen mit folgender Beschreibung:

Christian B. schrieb:
> Das Digitale Messgerät schwangt zwischen 1,42 Volt und 1,45 Volt wobei
> dann die Ausgabe an der Console 1.040V und 1.022V anzeigt

reime ich mir mal folgendes zusammen:

Das analoge Druckmessgerät zeigt 0,62Bar (= 9 psi)
Ein Digitalmultimeter zeigt 1,42V
Mit dem ADC misst du gleichzeitig im Mittel 1,03V und gibst diese über 
den RPi aus. Nur dein digitales Messgerät liegt völlig daneben.

Stimmt das so?

1,03V entsprechen mit der Kennlinie deines Sensors einem Druck von 8 
psi. Ist schon recht nahe an dem Wert, den der analoge Druckmesser 
anzeigt, oder. Was dein Digitalmessgerät anzeigt (und was aus den 
anfangs erwähnten "extremen Schwankungen" geworden ist, kann ich nicht 
recht nachvollziehen: deine Darstellung der Messungen ist für mich nicht 
schlüssig.


Christian B. schrieb:
> Ich glaube balt es ist am sinnvollsten...

Da gibt es nicht viel Raum zum Diskutieren, was sinnvoll oder weniger 
sinnvoll ist. Es gibt einen linearen Zusammenhang zwischen Druck und 
Ausgangsspannung des Sensors. Die Geradengleichung ist mit den gegebenen 
Punkten festgelegt.

von SucheeineBox (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich häng mich hier mal dran da ich ein änlich gelagertes Problem hab.

1 Ardu + ADS1115 + Ceracore UCS2

https://portal.endress.com/wa001/dla/5000213/1619/000/00/TI901PDE_0808.pdf

Ueber den ADS lese ich vom Sensor 2.45V, dies deckt sich mit der 
Erwartung.
Gleichzeitig lese ich die VDD(voltageD) mit 4,95V (USB Versorgung des 
Ardu) und 4,99V (Versorgung des Ardu vom Netzteil) aus.

Mit dem Unterschied von 0.4V auf VDD steigt meine Signalspannung am 
Sensor proportional an (voltageA = 2,45V --> 2,47V).
Nun fehlt mir der Ansatz wie man damit korrekterweise umgeht, bzw. den 
Unterschied in die Berechnung mit einfließen lässt damit ich von 
Schwankungen auf der Spanungsversorgung unabhängig bin.

Im folgenden mal die entscheidenden Zeilen:
1
  voltageA = (((readADC(0)* 0.1875)/1000)-0.5);
2
  voltageD = ((readADC(3)* 0.1875)/1000);
3
  p_offs = (p_atmo - (500 * voltageA)); //4V/2bar outpoutrange
Kompletter Code im Anhang.
p_offs ist hier dann der Unterschied zu dem Einstellwert p_atmo, der 
sich über die Keys vom LCD.Shield einstellen lässt.


Grüße

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
Noch kein Account? Hier anmelden.