NEWS
[Gelöst] ADS1115 Analogwert in Volt umrechnen
-
@bahnuhr zusätzlich noch wichtig:
@bahnuhr sagte in ADS1115 Analogwert in Volt umrechnen:
max Volt
ist das die max Volt der Zelle(n) oder die max. Ladeendspannung.
-
@homoran sagte in ADS1115 Analogwert in Volt umrechnen:
ist das die max Volt der Zelle(n) oder die max. Ladeendspannung.
Du brauchst doch einen Anhaltspunkt, wo du genau weist dass 5 Volt z.B. 10.000 Punkte sind.
Nur dann kannst du doch per Dreisatz ermitteln welcher analoge Wert wieviel Volt darstellen.(Und dies war doch bei den Drucksensoren nicht ganz so einfach; haben ja erst bei 0,5 Bar angefangen.)
Hier noch ein Link:
https://forum.iobroker.net/topic/36109/heizungsschema/21?_=1673772554076 -
@bahnuhr sagte in ADS1115 Analogwert in Volt umrechnen:
Du brauchst doch einen Anhaltspunkt, wo du genau weist dass 5 Volt z.B. 10.000 Punkte sind.
Nur dann kannst du doch per Dreisatz ermitteln welcher analoge Wert wieviel Volt darstellen.naja, du brauchst wenigstens 2 Punkte um Steigung und offset der Kalibrierung zu berechnen.
Ich habe aber weiter schon das Ziel im Auge.
Das Messen der Spannung einer LiIon Batterie ist wie gesagt nicht trivial.Eine Frage wäre wofür gemessen wird.
Eine zweite Frage wäre ob unter Last oder nicht. Wenn Last, wie hoch? Auch in Relation zum max. (Ent) Ladestromhier nochmal meine ENTladekurve
unter Last -
Moin
Es spielt doch für die Frage gar keine Rolle, WAS ich WIE messe. Ich weiß, was ich da mache - ich kenne den ADS1115 und wie ich damit messen muss.
Hier gehts eher um die Frage, wie ich Messwerte in Blocky umrechne. Von Anlogread des Arduino / ESP / ADS in Volt.
Gemessen wird mit dem ADS1115, singleended mit 6144 mV Gesamtmessbereich. Gemessen werden soll EINE Zelle, eine LION oder LIPO Akkus. Dabei gilt das Verhältnis von gemessenen Analogwerten (0-30000 = 0 - 6,144V).
Sieht man ja schön im Datasheet, wenn man sich das mal anschaut.Die Messwerte sind dann eben 0-30000.
Wie macht man daraus nun 0-6,144V in Blocky?
Darum gings eigentlich ^^
-
@fellpower
Na, wenn du weißt wie es geht dann ist ja alles gut.Dann weißt du ja auch, dass du mit 6,1 V den ADS1115 schrottest.
Aber du weißt ja wie es geht.
-
@fellpower sagte in ADS1115 Analogwert in Volt umrechnen:
Dabei gilt das Verhältnis von gemessenen Analogwerten (0-30000 = 0 - 6,144V).
dann mach daraus eine Kalibriergerade resp. Faktor
-
@fellpower sagte in ADS1115 Analogwert in Volt umrechnen:
Die Messwerte sind dann eben 0-30000.
Wie macht man daraus nun 0-6,144V in Blocky?Mathematik?
-
Antwort tatsächlich im Forum gefunden - nur nicht in diesem Thread. Danke an Alle!
-
Anhand der hier bereitgestellten Informationen wage ich das zu bezweifeln. Ein ADS1115 ist schon etwas komplexer, z.B. müsste man für die Umrechnung die Messverstärkung kennen etc. Aber ok, scheint ja zu funktionieren.
-
@fellpower sagte in [Gelöst] ADS1115 Analogwert in Volt umrechnen:
Hier gehts eher um die Frage, wie ich Messwerte in Blocky umrechne. Von Anlogread des Arduino / ESP / ADS in Volt.
Der OP hat seine Lösung gefunden. Hier nochmal die Antwort für alle, die auf der Suche nach dem Problem auf diesen Thread stoßen:
Ein Bild für Blockly kann ich gerade nicht posten, aber die Berechnung erfolgt natürlich einfach über den Dreisatz:
U = V_MAX * Eingangswert / MaximalwertV_MAX hat der OP hier auf 6.144 V eingestellt.
Der Maximalwert ist allerdings nicht wie angegeben 30000 sondern 32767 (0x7fff) wie man dem Datenblatt entnehmen kann.Also in dem Fall: U = 6.144V * Wert / 32767
Natürlich sollte man dabei Berücksichtigen, dass die Grenzwerte für den Baustein eingehalten werden um den Chip nicht zu beschädigen und dass der Baustein natürlich einen Eingangswiderstand und auch weitere elektrische Eigenschaften besitzt, die man im Einzelfall berücksichtigen muss.
Das bedeutet natürlich auch, dass man niemals 6.144V (gegen GND) messen können wird, aber das war ja nicht die Frage.Edit: Noch eine Anmerkung: Ich bevorzuge übrigens die Umrechnung direkt auf dem ESP, die meisten Systeme unterstützen das. Dann bekommt ioBroker direkt den passenden Messwert, also in diesem Fall die Spannung in Volt oder Millivolt, in meinem Fall z.B. die Bodenfeuchtigkeit in %
-
@zarello Danke für die Zusammenfassung
War nicht die Frage, kann aber existentiell sein, je nach Anwendung. Der ADS1115 ist für sich kein Präzisionsmessgerät und benötigt für genaue Ergebnisse schon etwas Kalibrierung. Eben weil die umgebende Schaltung einen Einfluss auf den zu messenden Wert hat. Ein Problem können z.B. Schwankungen der Spannungsversorgung sein. Passiert gerne, wenn der ADS über den ESP versorgt wird. Ich würde auf jeden Fall mit einem guten Multimeter mal nachmessen, ob der errechnete Wert auch halbwegs stimmt und ggf. die Berechnung anpassen.
-
@andygr42 sagte in [Gelöst] ADS1115 Analogwert in Volt umrechnen:
War nicht die Frage, kann aber existentiell sein, je nach Anwendung. Der ADS1115 ist für sich kein Präzisionsmessgerät und benötigt für genaue Ergebnisse schon etwas Kalibrierung. Eben weil die umgebende Schaltung einen Einfluss auf den zu messenden Wert hat. Ein Problem können z.B. Schwankungen der Spannungsversorgung sein. Passiert gerne, wenn der ADS über den ESP versorgt wird. Ich würde auf jeden Fall mit einem guten Multimeter mal nachmessen, ob der errechnete Wert auch halbwegs stimmt und ggf. die Berechnung anpassen.
Und selbst das gibt Dir nur eine Momentaufnahme. Wenn sich die Temperatur ändert, hast Du auch schon wieder andere Messwerte. Die alte Weisheit "Wer misst misst Mist" bewahrheitet sich halt immer wieder.
-
Und warum wir hier 30000 anstatt 32767 nehmen, sollte ja jedem klar sein ^^
6,144V war natürlich falsch umschrieben von mir, es ist natürlich der FSB (Gain) gemeint - daher ergeben sich auf der LSB Seite dann 187,5uV pro Schritt - das erachte ich im aktuellen Projekt, bei 16bit, als ausreichend - ohne einen Spannungsteiler zu bemühen - und somit noch mehr Bauteile ins Spiel zu bringen.
Und "nicht genau", wage ich mal zu bezweifeln, EINE 1 S Lion Zelle zu messen, mit 0,01% finde ich schon ausreichend genau, für diese Anwendung ^^
Ich habe dabei auch Experimente mit VCC gemacht, sogar bis weit unter 2V VCC (Der ADS selbst, nicht das Breakout) sind die Messwerte noch plausibel - soviel dazu.
Liegt wohl an der internen Voltage Reference ^^Und wegen Temperatur: https://www.best-microcontroller-projects.com/support-files/ads1115.pdf#page=7&zoom=100,0,96
Auch die wird kompensiert ^^
-
@fellpower Es geht nicht um die Auflösung, also den relativen Messwert sondern den absoluten. Um die angegebene Genauigkeit zu erreichen, müssen auch alle Rahmenparameter stimmen. Auch die interne Referenzspannung ist Schwankungen unterlegen, sofern die Betriebsspannung nicht sauber ist. Z.B. durch Schwankungen oder Noise vom Wandler. Ich würde mich auf keinen Fall darauf verlassen, sondern IMMER den Umrechnungsfaktor selbst ausmessen. Ob das 30000 oder 32767 sind ist völlig egal, solange es in der Formel dem tatsächlichen, gemessenen Spannungswert entspricht. Jedes Messgerät muss kalibriert werden, wenn es exakte Werte anzeigen soll. Und es dürfte für die Zelle einen gewaltigen Unterschied machen, wenn die 30000 am Ende nicht 6,144 sondern nur 6,0 V entsprechen würden. Die Auflösung spielt dabei erstmal keine Rolle.
Dann gibt es, beschrieben weiter oben, auch noch mögliche Abweichungen einzelner Messungen. Z.B. durch digital Noise etc. Wenn Du also nur alle par Sekunden eine Messung machst, könnten die durchaus erheblich daneben liegen. In diesem Fall solltest Du die hohe Messfrequenz nutzen und die Ergebnisse normalisieren, bevor eine Entscheidung getroffen wird. In der Regel per Normalverteilung. Ich habe bei Messungen mit dem ADS (versorgt über eine ESP) schon Sprünge im zweistelligen Prozentbereich gesehen. Das ist nicht weiter schlimm, da sie im Bereich von deutlich <5% ausgetauscht sind. Sie müssen dann halt nur verworfen werden.
-
@andygr42 sagte in [Gelöst] ADS1115 Analogwert in Volt umrechnen:
Jedes Messgerät muss kalibriert werden, wenn es exakte Werte anzeigen soll.
Prinzipiell hast Du damit natürlich recht. Es stellt sich allerdings immer die Frage nach der Genauigkeit des Messgerätes, mit dem kalibriert wird. Und wenn das ein relativ einfaches Multimeter ist, kann es durchaus sein, dass eine Kalibrierung damit den Fehler eher vergrößert statt verkleinert. Denn auch dieses Messgerät hat nur eine begrenzte Genauigkeit und liefert Dir nicht den exakten Wert. Da können die Angabe des Datenblattes des ADS Dir unter Umständen eine genauere Messung liefern. Dort wird ja zumindest recht genau angegeben welche Faktoren sich auf welche Art auf die Messung auswirken. Wenn Du nun alle Faktoren zusammen rechnest kannst Du durchaus eine Vorstellung bekommen, wie stark der absolute Messfehler sein kann.
Und zusätzlich würde ich an dieser Stelle vermuten, dass der absolute Fehler bei diesem Projekt gar nicht unbedingt relevant ist, sondern die Wiederholgenauigkeit deutlich wichtiger ist. Denn wenn man die Entladekurve ein paar Mal aufgenommen hat, so kann man dann relativ sicher sagen, ab wann der Akku eine gewisse Entladung aufweist - und zwar unabhängig davon, ob der absolute Fehler des Spannungswertes groß oder klein ist solange die Wiederholgenauigkeit gut ist.Ich vermute übrigens, dass der ADS bei der Produktion bereits kalibriert wird, damit er die im Datenblatt angegebenen Genauigkeiten auch einhalten kann. Das wird in der Produktion automatisiert funktionieren, nur wenige Bruchteile einer Sekunde dauern und durch exakt vorgegebene Referenzspannungen bei definierten Umgebungsbedingungen in vielen Fällen exakter sein, als das was zumindest ich bei mir zu Hause mit meinem verfügbaren Mitteln erreichen könnte.
-
@zarello Das hängt sicher vom Anwendungsfall ab. Aber wenn ich damit z.B. die Ladekurve eine Akkuzelle steuern möchte, dann würde ich mich auf keinen Fall blind darauf verlassen. Das Datenblatt bezieht sich auch auf den IC selbst und berücksichtigt keinerlei Umgebungsparameter. Ich würde folgendes tun:
- Vollgeladene Zelle anschließen (Leerlaufspannung liegt am nächsten an der Ladeschlussspannung)
- Eine Messreihe aufzeichnen, z.B. 100 Werte bei einer Abtastung mit 10Hz
- Messwerte vergleichen (mit einem möglichst genauen Messgerät) und ggf. normalisieren
- LBS Size berechnen
Liegt die gemessene LSB Size bei der erwarteten ist alles gut. Ansonsten müsste man prüfen warum nicht.
Weist die Messreihe signifikante Ausreißer auf, dann würde ich das in die Auswertung einfließen lassen. Wenn nicht, dann wäre es auch ok. Ich habe mir aber angewöhnt das immer zu tun, falls sich über die Zeit Fehler einschleichen. Außerdem verbessert es die Lesbarkeit von Diagrammen wenn die Werte nicht "zittern".