HX711 TEMPERATURDRIFT

  • [font="Lato, sans-serif"]Ich musste die letzten Tage feststellen, dass der von mir eingesetzte Wiegedrucksensor HX711 einen (positiven) Temperaturgang hat:[/font]
    [font="Lato, sans-serif"]Wird der Chip erwärmt, erhöht sich (scheinbar) das gemessene Gewicht: [/font]



    [font="Lato, sans-serif"]Das führt natürlich zu Messfehlern, zumal der Nullpunkt somit nicht stabil ist. Bisher habe ich nichts gefunden, wie der Sensor mittels externer Beschaltung temperaturkompensiert werden kann.[/font]


    [font="Lato, sans-serif"]Wen das Thema interessiert, der kann meine Bemühungen, diesen Effekt zu kompensieren, auf meinem Blog verfolgen.[/font]


    [font="Lato, sans-serif"]Hier natürlich auch :-)[/font]


    [font="Lato, sans-serif"]Grüße, das Zen[/font]

  • ich würde es mir einfach machen und den HX711 per Regelung auf 45°C halten, ist oberhalb von üblichen Wohnzimmertemperaturen und leicht zu realisieren in einer isolierten Kiste, ob es da nun um +-1°C schwankt ist weniger entscheidend als die drift von 18°C nach 33°C
    Automatisch zusammengefügt:[hr]
    Nachtrag, ich hatte die ehrenvolle undankbare Aufgabe ein spezielles Physikinstruument teuer zu reparieren, eine kleine Heizplatte die auf eine Temperatur eingepegelt werden konnte bis 200°C.


    Es war trivial genial aber teuer, ein popliger Schaltregler, Standard arbeitete auf einen Festwiderstand und gemessen wurde in der Rückkoplung zum Schaltregler per PT1000.


    Da das Heizelement fest aufgeschweisst war und nur 120°C gebraucht wurden, Heizelement runtergehobelt, einen TO220R eingesetzt und neu justiert, fertig, war billiger als die Kiste neu zu kaufen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Edited once, last by jar ().

  • Hallo Zentris,


    Du suchst Dir aber auch immer solche Themen aus. Willst irgendwas machen und plausibler gestalten ... und plumpst von einem zum nächsten...


    Aber es bleibt spannend!



    Deine Messkurven sehen sehr merkwürdig aus. Ich vermag da erstmal keinen Trend zwischen Temperatur und angezeigter Masse zu erkennen.


    Um das zu verifizieren, würde ich mal einen Gegenstand von ungefähr bekannter Masse (z.B. eine Flasche Wasser) auf den HX711 setzen und dann den HX711 die Temperaturskala rauf und runter jagen (natürlich bei jeder Temperatur auf einen konstanten Messwert warten - so fix wird das Ganze nicht sein).


    Ich hoffe, dass dann ein Trend erkennbar wird. Dann kann man den Messwert (wie Jar es geschrieben hat) - allerdings rechnerisch - auf eine beliebige Referenztemperatur umrechnen.


    Anekdote:
    Ich hatte mal die ehrenvolle Aufgabe, die Messsystemanalyse eines Helium-Lecktesters durchzuführen. Nach einem 30-minütigem Leerlauf habe ich dann mit der Messung begonnen. Ein Testleck eingespannt und über 60 Sekunden gemessen. Der Messwert zum Zeitpunkt t = 60 s war dann "meiner". Dann das Testleck entnommen, neu eingespannt etc. Stundenlang...


    Mir ist zwar aufgefallen, dass während der mehrstündigen Messung die Raumtemperatur anstieg (die ich vorsorglich zusammen mit dem Messwert aufzeichnete). Sicherlich ist auch die Gerätetemperatur angestiegen. Damals gab's aber noch keinen RPi und im Gerät versenkbaren DS18B20 - so blieb die wahrscheinlich interessantere Geräte-Temperatur im Verborgenen. Dem Temperaturanstieg habe ich aber keine große Aufmerksamkeit geschenkt. Dann habe ich die Messwerte ausgewertet. Und wollte danach den Lecktester mitsamt Testleck aus dem Fenster schmeißen. Klassische Fehlinvestition. Dann habe ich mit dem Hersteller (den ich hier jetzt nicht nennen werde) gesprochen. Der meinte: "Na ja, viel besser als sie gemessen haben, geht es eigentlich nicht!".


    Na, Klasse!
    Dann habe ich mir überlegt, was denn so ein Helium-Atom macht, wenn es die Möglichkeit bekommt, durch einen engen Kanal durch ein Material zu diffundieren, um dann mit dem Lecktester detektiert zu werden. Dann habe ich ein paar Formeln aus der Gaskinetik zusammengepackt. Und einige Zeilen weiter stand dann eine Formel (sinngemäß): Leckrate(Referenztemperatur) = Leckrate(Messtemperatur) * Funktion(Referenztemperatur, Messtemperatur).


    Holla, die Waldfee!


    Die dann erhaltenen Leckraten führten zu einer Messmittelfähigkeit >> 5.


    Und dann war ich so dreist, diese Messung von einem Produktionsmitarbeiter durchführen zu lassen. Und dann noch von jemandem, der noch nie den Messraum betreten hatte. Alle Messreihen zusammen führten zu einer Messmittelfähigkeit von >> 3 (gefordert war ein Wert von 1.33). Ohne diese Temperaturkorrektur lag der Wert irgendwo um 0 herum.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • übrigens Kalibrieung und Überwachung, in der Industrie wurden die Telefone mit genauem Dremoment verschraubt, dies wurde auch überwacht sogar die Löttemperaturen der Handbestückplätze! (ISO 9000)


    Ich wunderte mich schon als sich 6 Monate nach dem Kauf meines Neuwagens (Tageszulassung) die Schraube vom Türfeststeller lockerte, das darf doch nicht passieren?
    Der Servicemitarbeiter meinte das käme öfter vor, kurz die Knarre angesetzt, passendes Torx (Neudeutch Stern) Bit angesetzt und mit der Knarre nachgezogen und nein es war keine mit Drehmomenteinstellung. Da wundert man sich schon, wird in der Autoindustrie nicht nach ISO 9000 gefertigt? Kennen die nicht die Anzugsmomente? Sind ihre Schrauber nicht gewartet oder überwacht? Wie kann es sein das sich diese Schrauben lockern?


    Sogar bei meiner RDSK Reifensensoren steht das zulässige Anzugmoment der Ventile am Sensor 4 - 8 Nm (verschiedene Hersteller) ich weiss aber nicht ob der Reifenhändler das auch las!
    Bei meinem Fahrrad ist das Anzugsdrehmoment auch genannt für den Lenker, aber soweit runter reicht mein großer Schlüssel nicht und kleinere wollte ich mir nicht kaufen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • Da wundert man sich schon, wird in der Autoindustrie nicht nach ISO 9000 gefertigt?


    Schon lange nicht mehr. Dort gibt's VDA Band 6 (deutsche Autombilbauer), QS-9000 (amerikanische Automobilbauer) und ISO/TS 16949 (Versuch eines interkontinental geltenden Regelwerks). Das gibt's so seit Ende der vergangenen 90er Jahre.



    Kennen die nicht die Anzugsmomente? Sind ihre Schrauber nicht gewartet oder überwacht? Wie kann es sein das sich diese Schrauben lockern?


    Ich habe mal bei einem Autohersteller in der Slowakei eine FMEA-Schulung gegeben. Dort gab es extra für mich eine Betriebsführung. Drehmoment-mäßig waren die voll gut drauf. Jede Schraube, die mit einem bestimmten Drehmoment eingeschraubt werden musste, wurde mit einem Drehmomentschlüssel eingedreht, der das Anzugsmoment an einen Rechner weiterleitete. Der meldete erst dann sein OK, wenn das Drehmoment innerhalb enger Grenzen eingehalten wurde. Ansonsten Alarm und Panik.
    Alle Drehmomente eines Teils (Sitz etc.) wurden dann zu diesem Artikel nachvollziehbar gespeichert. Selbstverständlich war das Prüfmittel kalibriert, die Software validiert.



    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Ich bin genervt!


    Ich habe (noch bevor der Vorschlag von Andreas kam) begonnen, Temperaturgangtests in den Klimakammern des Standardhaushalts durchzuführen... also Kühlschrank und Ofen...
    Unterstützt hat mich meine private Assistentin für alle Lebenslagen, der ich hier noch mal danken möchte :thumbs1: :heart:


    Ausgangslage/Messumfeld:

    • Waage unbelastet (leer)
    • Kalibrierung aus ~ 0g
    • Versorgung der Waage aus einem PowerPack (5V)
    • Nur die Temp. des HY711 wird per DS18B20 abgefragt, alle Werte werden per ESP8266 (NodeMCU) "gleichzeitig" erfasst.
    • Abfrage der Werte (ca. alle 2sec) drahtlos per http-request >> Datenfile, Umsetzung der Daten mit Geany und Libre-Calc


    Vorgehen:

    • Akklimatisierung auf dem Küchentisch
    • Backofen bei ca. 80°C
    • Akklimatisierung auf dem Küchentisch
    • Kühlschrank bei 3°C
    • Akklimatisierung auf dem Küchentisch


    Was dabei rauskam, "kann man eigentlich nicht beschreiben" - deswegen weiter unten das Bild: :wallbash:
    (In der Zeitreihe fehlen einige Werte, die habe ich entfernt weil es "Handling-Werte" waren, also wenn die Waage umgesetzt wurde und die Leitungen gerichtet wurden).



    Feststellungen:

    • Der HX711 hat definitiv eine (erheblichen Temperaturgang), grob geschätzt bei 1-2g / °C
    • Es kam zu einer "Nullpunktverschiebung":
      Nach der Erwärmung im Ofen und Abkühlung auf Raumtemepratur hat die (unbelastete Waage) statt 0 g ca. 22 g angezeigt.
      Das hat sich auch nicht wieder irgendwie normalisiert...
    • Der Temperaturgang ist nichtlinear.


    Neben einem Temperaturgang des HX711 scheint auch der Wägebalken einen Temperaturgang zu haben, aber anders als man annehmen könnte:


    Eigentlich hatte ich erwartet, dass sich die Temperaturgänge der Dehnmeßstreifen durch die Brückenschaltung kompensieren - vermutlich tun sie das auch.


    Ich vermute etwas anderes:
    Die Dehnmeßstreifen werden aufgeklebt. Wenn der Kleber (Silikon?) aushärtet, kommt es zu mechanischen Spannungen. Das tut zunächst nix und stört die Messung nicht.
    Wenn man jedoch so wie ich den Wägebalken "tempert" (also so weit erwärmt, dass der Kleber "etwas" nachgeben kann, dann lösen sich die Spannungen (oder ein Teil davon) und die Brücke hat ein anderes Gleichgewicht als zuvor.


    Weitere Vermutung:
    Der Alu-Träger verformt sich bei Erwärmung nicht gleichmäßig und erzeugt somit eine "Nullpunktverschiebung" der Brücke. Warum die allerdings nicht reversibel ist, erschließt sich mir nicht...


    Ok, ich werde die Tests in den nächsten Tagen wiederholen um einen systematischen Fehler auszuschließen (wir konnten nämlich beim Testlauf im Kühlschrank beobachten, dass das Gewicht weiter abnahm, obwohl die Temperatur konstant blieb).


    So, sachdienliche Hinweise und Gedanken sind mir willkommen :lol: :thumbs1:
    Automatisch zusammengefügt:[hr]
    //Edit:


    Noch eine Nachtrag:
    Wenn ich die Daten anders darstelle, wird evtl. deutlicher, was ich meine:
    Im Diagramm hier die "Hysteresekurve" der Erwärmung/Abkühlung:



    Die X-Achse ist die Temperatur, die Y-Achse ist das angezeigte Gewicht _ohne dass etwas auf dem Waagenteller_ liegt.


    Im Idealfall überdecken sich die Kurven und die Kurve ist eine Gerade auf der X-Achse...

  • Ich lese hier das der Wäägebalken und HX711 temperiert wurden?


    Hast du das auch mal einzeln versucht?
    Wer hat den höheren Temperaturgang?


    vielleicht genügt es nur den HX711 auf Temperatur zu halten um den TK geringer zu halten?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ja, ich habe die gesamte Konstruktion in die "Klimakammern" versenkt (was ja durchaus dem Anwendungsfall entspricht).


    Einzeln ist es kompliziert, aber auch das habe ich vor ein paar Tagen versucht, in dem ich den HX711 mit Warmluft beaufschlagt habe: Schon damit war ein deutlicher Temperaturgang zu beobachten.
    Der Temperaturfühler ist in Schrumpfschlauch verpackt und mittels einer kleinen Leimzwinge auf den Chip gepresst (Bild unten).
    Das ganze hat natürlich eine gewisse therm. Trägheit, die bei der Erwärmung mit dem Warmluftgebläse stört, da man (ich) das nicht so gleichmäßig hinbekommt... (deswegen kam ich auf die "Klimakammer"-Idee)



    Eigentlich wollte ich "nur" 3 Messpunkte haben, um da ggf. eine math. Funktion reinlegen zu können, mit deren Hilfe ich dann die Kompensation berechne.
    Das das dann so verrückt wird, hatte ich nicht erwartet.


    Ich denke nun (nach dem Überschlafen), dass ich den Wägebalken zunächst ignorieren werde.


    Interessant ist eigentlich nur, dass es grundsätzlich Sinn zu machen scheint, dass man den Wägebalken vor der ersten Verwendung mal kurz im Backofen "tempert", also auf 80-90 °C erwärmt, um da ggf. in der Klebeschicht eingebaute Spannungen zu reduzieren (Aber wie gesagt, diese meine Annahme ist blanke Theorie - u.U. bekommt hier ein echter Fachmann einen Lachflash...)

  • Hallo Zentris,


    meiner Meinung nach jagst Du hier einem Artefakt hinterher. Du misst die Eigendynamik, die eine Temperaturänderung auf (ADC HX711 und) Sensor ausübt.


    Nicht umsonst lagern akkreditierte Prüf- und Kalibrierlaboratorien die zu kalibrierenden Artikel für mindestens 24 Stunden im klimatisierten Messraum, bevor ein Artikel einem Kalibrierversuch unterzogen werden darf.



    Interessant ist eigentlich nur, dass es grundsätzlich Sinn zu machen scheint, dass man den Wägebalken vor der ersten Verwendung mal kurz im Backofen "tempert", also auf 80-90 °C erwärmt, um da ggf. in der Klebeschicht eingebaute Spannungen zu reduzieren (Aber wie gesagt, diese meine Annahme ist blanke Theorie - u.U. bekommt hier ein echter Fachmann einen Lachflash...)


    Der ADC HX711 besitzt lt. Datenblatt eine Arbeitstemperatur von -40 bis +85 °C. Zu einer Temperaturdrift hat das Datenblatt keine Ausagen gemacht. Welcher Arbeitsbereich ist für den Wägebalken angegeben? Wenn dessen Arbeitsbereich außerhalb der Temperatur Deiner Klimakammern liegt, dann schädigst Du den Wägebalken mehr, weil dieser dann nur noch Mist misst.


    Kannst Du für den Wägebalken irgendeine weiterführende Information bereitstellen (Typ, Artikel, Hersteller etc.)? Denn so übel sind gute Datenblätter nicht.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().

  • Moin,

    Quote

    Zu einer Temperaturdrift hat das Datenblatt keine Ausagen gemacht


    in dem angehängten Datenblatt wird die Temperaturdrift mit.

    Quote


    Input offset(Gain = 128) ±6 nV/°C


    Gain(Gain = 128) ±5 ppm/°C


    angegeben
    Wenn sich die Spannug um 6 nV pro Grad verändert müßte sich nach meiner überschlägigen Rechnung
    das Gewicht bei einer 10Kg Loadcell um ±1,5 Gramm pro Grad verändern (falls mein Ansatz richtig ist )
    Ich bin davon ausgegangen dass eine Loadcell einen rated output von 1mV/V hat.


    EDIT: Rechnung ist falsch, habe µ und n verwechselt :blush:
    also ist die Temperaturdrift sehr gering (lt. Datenblatt).
    Allerdings ändert sich auch bei mir (10Kg Loadcell, HX711, Arduino nano)
    die Ausgabe um 1 Gramm wenn ich bei Zimmertemperatur einen Finger auf den HX lege.
    Ob es an der Temperaturerhöhung liegt oder ob es andere Ursachen (Einstrahlungen)
    sind weiß ich nicht.




    Quote

    When the rated output is 1 mV/V and the excitation voltage is 10 V, the load cell will output 10 mV

    Files

    Edited once, last by ait ().

  • Ok, nach einiger Recherche im Netz lese ich, dass das Ganze ein systemimanentes Problem der "billigen" Wägezellen (Alu) einerseits und evtl. auch dem doch etwas "hemdsärmligen" Aufbau (nicht in einem Gehäuse, frei fliegende, ungeschirmte Verdrahtung) andererseits ist.


    Das Driftverhalten des Wägebalkens ist anderen ebenfalls schon aufgefallen, inzwischen habe ich einige Stelle im Netz gefunden, eine (im meinem Augen markante Aussage dazu hier (2. Beitrag in dem Thread): http://forum.arduino.cc/index.php?topic=402141.0)


    Danke für die Hinweise, die bisher von euch kamen: Ich werde nachher mal die Widerstände der Brücke durchmessen und die abgegebene Spannung ermitteln. Vermutlich lässt sich daraus und zusammen mit den Werte aus dem Datenblatt schon eine zu erwartende Fehlerbetrachtung machen (hab ich bisher vernachlässigt).


    Konsequenz (für mich):

    • Einhausen, isolieren, schirmen als erstes (Ein "schönes" Pult-Gehäuse hab ich inzwischen gefunden).
    • Kompensation "so gut es geht" in den Code aufnehmen (2 Messpunkte, linear approximieren).
    • Automatische Nullpunktkorrektur einbauen (Konzept: Reaktion auf plötzliche Lastreduktion > xx g ==> Korrekturfaktor so angleichen, dass die Anzeige auf 0g geht (machen die meisten Haushaltswaagen so...), im meinen Augen hässlich...
      Taster kann ich nicht mehr anschließen, da keine GPIOs mehr frei und ich keinen Port-Expander einbauen will. Alternative wäre noch eine Nullpunkt-Reset per http-put Kommando... mal sehen, vielleicht mache ich es konfigurierbar ...


    Beheizen des Sensores und des Balkens (wie schon vorgeschlagen wurde) ist für meinen Anwendungsfall nicht wirklich eine Option, da (auch) ein Batterie/Akkubetrieb angedacht ist (autonomer Betrieb ohne Stromkabel).


    Grüße, das Zen

  • Hab noch etwas gefunden.
    Unter
    http://beelogger.de/?page_id=835
    steht:

    Quote

    Prüfung und Modifikation HX711
    Wie unter Stockwaage (Bosche H30A & HX711) bereits beschrieben, gibt es Boards, die in ihrer Beschaltung durch eine nicht vorhandene Verbindung von E- bzw. BLK mit GND vom Referenzdesign abweichen.
    Plantinen ohne diese Verschaltung neigen generell zu einer größeren Tolleranz der Messwerte, haben eine höhere Temperaturempfindlichkeit und und weisen größere Abweichungen auch über längere Zeit auf, wenn das Board zuvor stromlos bzw. im Power-Down-Modus gewesen ist.


    Gewissheit, wie der Chip beschaltet ist, bringt nur die Messung des Widerstandes zwischen E- und GND. Dieser sollte bei einer korrekt beschalteten Platine praktisch Null sein. Ist der Widerstand wesentlich höher, kann die fehlende Verbindung selbst hergestellt werden. Hierzu sollte mit einem möglichst kurzen Kabel direkt auf dem Board zwischen E- und GND gearbeitet werden, um Stromschleifen zu vermeiden.



    Ich habe ein grünes Board. Darauf ist tatsächlich E- nicht mit Ground verbunden.
    Link zu meinem Board: http://www.ebay.de/itm/10KG-Sc…397149:g:-k8AAOSwdzVXpIDg



    EDIT: Diese Module sind wie es aussieht richtig verschaltet und sogar abgeschirmt:
    http://www.ebay.de/itm/HX711-D…t%3D6%26sd%3D272260489628

    Edited once, last by ait ().

  • Auch wenn das schon einen Monat rumliegt: Häng doch statt der Messbrücke mal eine Brücke aus Festwiderständen dran, die Du gut thermisch koppelst. Dann dürftest Du nur den Temperaturgang des HX711 messen, denn die Brücke bleibt konstant.

  • Ich habe mit einem Heißluft-Lötgerät (einstellbare Temperatur 100-450°C) sowohl den Balken als auch den HX711 (separat) erwärmt:


    Die Erwärmung des Balkens bracht nur kurz einen "Ausschlag", weil die Erwärmung der DMS durch den Luftstrom nicht gleichmäßig erfolgte. Nachdem der gesamte Balken "auf Temperatur" war, war alles gut.


    Die Erwärmung des HX711 zog dramatisch am "Gewicht": Der "Messwert" änderte sich mit mehreren Gramm/10°C... der ist eindeutig der Verursacher des Dramas.


    In den Unterlagen zum HX711 steht, dass dieser temperaturkompensiert sein soll... Beiträge in vielen englischen Blogs und Foren sprechen einen andere Sprache dazu... u.U. sind diese Consumer-Chips, die da drauf sind, ausgemusterte Teile, die die Tests nicht bestanden haben - so meine Vermutung.


    Hilft nur, eine eigene Kompensation aufbauen.


    Es gibt noch eine andere Fehlerquelle: Das "mechanische Gedächtnis" des Wäägebalkens:
    Der ist aus Alu und bei andauernder Belastung ab einer bestimmten Größe (weit unterhalb der angegebenen Max-Last) hat der eine Hysterese, die erst nach einer gewissen Zeit (oder gar nicht wieder) wieder zu Null wird... (selbst beobachtet, hängt evtl. mit der Fliessneigung von Alu zusammen).


    Ich bewege mich mit meinen Lasten z.Zt. bei ca. 10% des max-Wertes des Balkens, da ist dieser Effekt nicht sonderlich hoch.