Der Wert des Arduino-Gewichtssensors steigt/sinkt ohne Grund

Ich habe einen Gewichtssensor wie diesen an diesen Wägezellenverstärker angeschlossen, der auf hx711 basiert , und ich verwende ein Arduino (Uno oder Nano), um die Messwerte zu erhalten. Ich habe keine anderen Komponenten in meiner Schaltung und sie ist auf einem Steckbrett aufgebaut.

Alles funktioniert gut, außer dass meine Messwerte nie vollkommen stabil sind, sie nehmen im Laufe der Zeit entweder zu oder ab. Zum Beispiel wird der Messwert im Laufe von 2-3 Stunden von 47,50 Gramm auf 48,30 Gramm steigen und für mindestens ein paar Tage weiter steigen, wo ich am Ende einen Unterschied von 3-4 Gramm habe (ich habe nie genug gewartet, um es zu sehen wo es endet). Dies geschieht natürlich auch dann, wenn absolut kein zusätzlicher Druck auf den Gewichtssensor ausgeübt wird.

Ich habe versucht, den Sensor an einen 5-V-Spannungsregler anzuschließen, erhalte aber genau das gleiche Ergebnis. Es sieht so aus, als ob sich entweder der Widerstand im Sensor aufbaut oder die Spannung im Arduino zunimmt / abnimmt, aber ich kann nicht mit dem Finger darauf zeigen, was dieses Verhalten erzeugt und was dagegen zu tun ist.

Ich freue mich über jede Idee, da ich seit Tagen nach einer Lösung suche.

Präzisionen

Ich baue einen Katzenfutterautomaten, der die erforderliche Menge an Futter in eine Schublade fallen lässt. Ist die Schublade voll, steigt die Schublade aus dem Futterautomaten und die Katze kann fressen. Einmal leer, fährt die Schublade bis zur nächsten Fütterung wieder hinein. Das Problem ist, dass es ziemlich schwer vorherzusagen ist, wann die Katze mit dem Fressen fertig sein wird, wenn sich die Sensordaten von selbst weiter erhöhen. Manchmal kann es ein paar Stunden dauern, bis die Katze alles gefressen hat. Wenn ich die Schublade schließe und noch Lebensmittel darin sind, wird der Tara-Vorgang unterbunden und nach ein paar Tagen ist die Menge der heruntergefallenen Lebensmittel weit von dem entfernt, was sie sein sollte.

Außer Temp. Drift ist es geladen? oder einfach nur locker sitzen? könnten Teile außerhalb der Spezifikation mit einer thermischen oder Offset-Spannungsdrift sein. Überprüfen Sie die Offset-Drift in der Mitte und die Verstärkungsdrift am Ende des Bereichs
Was ist Vollausschlag. Ohne dieses Wissen ist die Driftzahl bedeutungslos.
Zeigen Sie auch die genaue Schaltung, die Sie verwendet haben.
Schauen Sie sich die Spezifikationen von Ihrem Link an und rechnen Sie nach ... wahrscheinlich nicht weit von dem entfernt, was Sie erwarten sollten ... Wiederholbarkeit % FS 0,05, Kriechen (30 min) % .FS 0,05 Temperatureffekt auf Empfindlichkeit % FS / 10 ℃ 0,05, Temperatureinfluss auf Null %FS/10℃ 0,05, Nullabgleich %FS ±0,5. Berücksichtigen Sie dann auch alle anderen Faktoren wie Verluste in der Schaltung, ADC Vref, ADC-Auflösung usw.

Antworten (2)

Nach vielen Versuchen fand ich heraus, dass das Problem von 2 Stellen kam:

1 - Die scale.get_units()-Funktion, die in der hx711-Bibliothek bereitgestellt wird, ermöglicht es, die Anzahl der zu mittelnden Samples anzugeben, um einen genaueren Messwert zu erhalten. Als ich die Anzahl der Samples von 20 auf 1 änderte, hörten die Werte auf zu springen und ich bekam eine flachere Linie. (+- 0,02 Gramm zwischen den Werten). Es liegt wahrscheinlich ein Fehler in der Bibliothek vor, da das Ergebnis umgekehrt sein sollte.

2 - Ich hatte "Rauschen" in meinem Schaltkreis und das Wiederlöten von Teilen davon löste eine weitere zeitweise Schwankung der Werte, die ich erlebte.

Ich habe Tests über einen Zeitraum von 8 Stunden durchgeführt und konnte feststellen, dass die Messwerte leicht ansteigen, dann abfallen und wahrscheinlich wieder ansteigen, wenn ich länger gewartet habe. Variationen waren von 0,8 Gramm über 8 Stunden, wie hier gezeigt:

Geben Sie hier die Bildbeschreibung ein

Ich berücksichtige diese Schwankungen jetzt mithilfe einer Software, um einen Driftwert zu berechnen.

Danke für all die Hilfe!

Sie können keine Hochleistungswaage mit billigem ADC und billiger Zelle erwarten. Eine Waage in Industriequalität kostet > 1.000 $, aber sie driftet mit der Zeit. In jeder Anwendung muss die Waage tariert werden. Zum Beispiel wird eine Eisspendermaschine auf Null gestellt, bevor sie beginnt, Eis in einen Beutel zu bringen.
Die In-Motion-Industriekontrollwaage verfügt über eine automatische Tarierfunktion bei jedem Entladen. Normalerweise gibt es ein Komparatorfenster, in Ihrem Beispiel 47 g +/- 5 g, und einen Tiefpass- oder gleitenden Durchschnittsfilter, der die Tara subtrahiert.
Sie sollten Ihre Anwendung beschreiben, aber sicher gibt es keine so kostengünstige Zelle, die stillsteht, daher liegt es an Ihnen, zu entscheiden, wann Sie den Tara-Vorgang durchführen.