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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] ADS1115 Analogwert in Volt umrechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fellpower last edited by fellpower

      Moin

      Habn 8266 als IOT Device, der soll eine Spannung mit dem ADS1115 messen. Soweit klappt das alles, ich bekomme Analogwerte im iobroker angezeigt.

      Nur sind die ja nicht in Volt. Wie kann ich das mit Blockly umrechnen? Ich habe null Plan davon. Wichtig ist eben auch, das ich mindestens 2 Stellen nach dem Komma habe, weil ich einen Lion Akku messen will. Ich benötige erstmal nur einen Eingang des ADS, aber würde ich Script gern alle 4 vorsehen.

      Ich würde mich über Unterstützung freuen. Wie müsste so ein Blockbild aussehen? Der Umrechnungsfaktor für das gewählte Gain ist 0,1875

      53c53688-ade3-424b-9f3b-b80af3fea4a1-image.png

      Soweit bin ich "erst". Nun komme ich nicht weiter.

      Liebe Grüße
      Chris

      Homoran bahnuhr 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @fellpower last edited by Homoran

        @fellpower sagte in ADS1115 Analogwert in Volt umrechnen:

        bekomme Analogwerte im iobroker angezeigt.

        welche?

        @fellpower sagte in ADS1115 Analogwert in Volt umrechnen:

        Nur sind die ja nicht in Volt.

        sondern?

        @fellpower sagte in ADS1115 Analogwert in Volt umrechnen:

        mindestens 2 Stellen nach dem Komma

        wie genau misst denn dein Sensor?

        @fellpower sagte in ADS1115 Analogwert in Volt umrechnen:

        einen Lion Akku messen

        ist nicht ganz so trivial
        siehe auch: https://forum.iobroker.net/post/927992

        1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active @fellpower last edited by bahnuhr

          @fellpower

          zu wenig Infos !

          • welchen Akku willst du messen (max. Volt) ?
          • wie greifst du die Volt ab ?

          Vorgehensweise:

          • max Volt
          • analogen Wert bei diesem max. Volt ablesen
          • Ist die Hardware und die Anzeige dann linear ?
            vgl. hier im Forum Drucksensor aus China; da hab ich mehrfach eine Excel Tabelle eingestellt zur Bestimmung des analogen Wertes.
          • wenn die Werte linear sind, dann Faktor ermitteln zur Umrechnung in Volt (Dreisatz).
          • Script schreiben um diese Werte dann in einen DP zu schreiben.

          mfg

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @bahnuhr last edited by Homoran

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

            bahnuhr 1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active @Homoran last edited by bahnuhr

              @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

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @bahnuhr last edited by

                @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) Ladestrom

                hier nochmal meine ENTladekurve
                1645549281604-entladekurve.jpg
                unter Last

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

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

                  bahnuhr Homoran Codierknecht Zarello 4 Replies Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @fellpower last edited by

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

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @fellpower last edited by

                      @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

                      1 Reply Last reply Reply Quote 0
                      • 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

                                          814
                                          Online

                                          31.7k
                                          Users

                                          79.6k
                                          Topics

                                          1.3m
                                          Posts

                                          6
                                          19
                                          1384
                                          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