beelogger

Stockwaage – Temperaturkompensation

Auch beim Einsatz hochwertiger Wägeelemente, wie das beim Arduino Datenlogger mit Stockwaage für Imker verwendeten H30A von Bosche, sind Abweichungen des Gewichtes aufgrund von Temperaturschwankungen, die auf das Gesamtsystem von Wägeelement, Kabel, Verbindungen, HX711, Arduino und der Trägerkonstruktion einwirken, zu verzeichnen. Grade der HX711 ist relativ temperaturempfindlich. Zudem sollte die Elektronik inkl. HX711 mit einem Gehäuse gegen kurzfristige Temperaturschwankungen geschützt werden. Um den generellen Einfluss der Temperatur zu verringern, kann mit einem temperaturabhängigen Korrekturwert gearbeitet werden. Für unseren Einsatz ermöglicht dies eine ausreichende Genauigkeit. In unseren Tests konnten wir mit Hilfe der Temperaturkompensation innerhalb einer Temperaturdifferenz von 25 Grad eine maximale Abweichung von 45g erreichen (vereinzelte Ausreißer ausgenommen).

Voraussetzung für die Nutzung der Temperaturkompensation, ist die Verwendung eines Temperatursensors zur Ermittlung der Außentemperatur. Für eine noch genauere Kompensation kann die Temperatur des Wägeelementes auch direkt durch Verbindung des Sensors über einen thermischen Leiter gemessen werden. Dadurch entstehen keine Abweichungen durch den Nachlauf der Temperatur des Wägeelementes zur Außentemperatur. Sofern in der Konfiguration des Sketch kein Temperatursensor für die Aussenwerte aktiviert ist und keine andere Konfiguration vorgenommen wurde, liefert die DS3231-RTC den Temperaturwert für Korrektur.

Ältere Sketche und die Sketche für System ohne direkte Anbindung an den Webserver verwenden in den Programmcodes Werte für die Temperaturkompensation. Zur Konfiguration werden lediglich die Werte für zwei Variablen benötigt, die Temperatur zum Zeitpunkt der Kalibrierung (‘Kalibriertemperatur’) sowie der Korrekturwert (‘KorrekturwertGrammproGrad’).

Sketche, die die Messdaten an einen Server versenden, benötigen die o.g. Werte nicht.
Die Korrekturwerte sind serverseitig in die Konfiguration einzutragen. Die Korrektur wird auf vom Serverskript beim Empfang der Daten automatisch durchgeführt.

Zur Ermittlung des Wertes für ‘KorrekturwertGrammproGrad‘ und ‘Kalibriertemperatur’ wird die kalibrierte Stockwaage zunächst mit einem fixen Referenzgewicht belastet. Über einen längeren Zeitraum wird nun das gemessene Gewicht sowie die Außentemperatur aufgezeichnet. Hierbei sollte möglichst ein Ort mit entsprechenden Temperaturschwankungen gewählt werden. Ein Wohnraum mit konstanter Temperatur wird keine verwertbaren Daten liefern. Hierfür werden der Programmcode und die Webserverskripte verwendet, wobei darauf zu achten ist, dass ‘KorrekturwertGrammproGrad‘ den Wert ‘0’ hat.

Dadurch, dass die neuen Webserverscripte und Sketche die Gewichtsdaten sowohl unkomprimiert als auch komprimiert aufzeichnen, lässt sich der Temperaturkompensationswert recht einfach ermitteln.

Schritt für Schritt-Anleitung zur Ermittlung des “KorrekturwertGrammproGrad”:

So sieht beispielsweise der Gewichtsverlauf einer “schlechten” Wägzelle für ein Festgewicht von ca. 2,6kg aus:

Nun wählt man sich in der Temperaturkurve einen möglichst hohen Hub:

 

Im Anschluss wird der Bereich zwischen diesen Werten durch die beiden Rangeselectoren eingeengt:

Dann wählt man nur den Temperatursensor an und liest rechts die Differenz ab. In diesem Beispiel -9 Grad.

 

Und macht das Gleiche für den unkomprimierten Gewichtswert “Gewichtswert(1A) unkomp.” – hier: 0.35 Kg

Den ‘KorrekturwertGrammproGrad erhält man dann ganz einfach durch folgende Formel:

Die Kalibriertemperatur ist die Temperatur bei der kalibriert wurde – bzw. die Temperatur bei der die Waage den Wert des aufgestellten Wertes exakt anzeigt.

,