Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] ADS1115 Analogwert in Volt umrechnen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] ADS1115 Analogwert in Volt umrechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Codierknecht
      Codierknecht Developer Most Active @fellpower last edited by

      @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?

      F 1 Reply Last reply Reply Quote 0
      • F
        fellpower @Codierknecht last edited by

        Antwort tatsächlich im Forum gefunden - nur nicht in diesem Thread. Danke an Alle!

        https://forum.iobroker.net/post/301180

        A 1 Reply Last reply Reply Quote 0
        • A
          AndyGR42 @fellpower last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • Zarello
            Zarello @fellpower last edited by Zarello

            @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 / Maximalwert

            V_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 % 😉

            A 1 Reply Last reply Reply Quote 2
            • A
              AndyGR42 @Zarello last edited by

              @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.

              Zarello 1 Reply Last reply Reply Quote 0
              • Zarello
                Zarello @AndyGR42 last edited by

                @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.

                F 1 Reply Last reply Reply Quote 0
                • F
                  fellpower @Zarello last edited by

                  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 ^^

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    AndyGR42 @fellpower last edited by

                    @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.

                    Zarello 1 Reply Last reply Reply Quote 0
                    • Zarello
                      Zarello @AndyGR42 last edited by

                      @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.

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        AndyGR42 @Zarello last edited by AndyGR42

                        @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".

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        462
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        6
                        19
                        1487
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo