Heute habe ich folgendes Problem. Ich möchte meine 5 Tonnen Wägezelle kalibrieren (Datenblatt im Anhang) bzw. zum Laufen bringen.
Schritt für Schritt bin ich hier nach dem folgenden Tutorial gegangen.
Erstes Problem: Auch nach Belastung (150 kg mehr habe ich momentan nicht) ergibt sich keine Veränderung des Anfangswerte und die Werte bleiben auf 0,00kg oder irgendeinen Zufallswert. Den Kalibrationsfaktor kann ich ändern wie ich will, jedoch auch ändert sich der Messwert nicht. Nur ab und zu saust ein recht zufällig wirkender Wert vorbei.
Was ich bereits versucht habe: die Wägezelle arbeitet bei einer Excitation Voltage zwischen 5 und 12 V. Der Arduino Uno gibt über USB betrieben auf dem 5V Kanal nur etwa 4,7 V aus. Zusätzlich mit einer 9V Batterie komme ich auf 4,95 V. Das ist schon sehr nahe. Jedoch keinerlei Messwerte.
Was könnte ich noch versuchen?
Ist das Gewicht von 150kg bei 5 to zu wenig?
Ist der Hx711 im Eimer? Gibt es einen Funktionstest?
Ich würde auf Probleme mit Verdratung bzw HX711 tippen. 150kg bei 5000kg müßten deutlich meßbar sein.
Du kannst ja mal die Spannung am HX711 Eingang messen (Spannung zwischen den 2 Halbbrücken, Signal+ und Signal-). Da müßtest Du bei 150kg konstant um 10mV messen.
Leider keine 10 mV messbar zwischen A+ und A-. Auch wenn ich alles auf B+ und B- lege bekomme ich keine Messung. Die Excitation Voltage kann ich zwischen E+ und E- messen. Da bekomme ich ca. alle 30 Sekunden einen Impuls von 4.3 V. Wenn ich Excitation Voltage richtig verstanden habe dann sollte das auch so sein (?).
Zusammenfassend, Hx711 fehlerhaft?
Neue bestellt, kommt aber erst nächste Woche und leider habe ich keinen freundlichen Chinesen um die Ecke.
Da bekomme ich ca. alle 30 Sekunden einen Impuls von 4.3 V.
Wieso ist die Spannung gepulst?
Sie Wägezelle ist eine Brückenschaltung aus 4 Widerständen wobei bei einer Wägezelle alle 4 Widerstände abhängig vom Meßgewicht sind. Brückenschaltung – Wikipedia
Die Excitation Voltage ist die Spannungsversorgung an den beiden Spannungsteilern. Während die Signalspannung die Differenz der beiden mittelspannungen der beiden Spannungsteiler ist.
Laut dem von Dir gegebenen Datenblatt der Wägezelle gibt es nur signal+ und signal- Diese beiden Anschlüsse mußt Du mit A+ und A- des HX711 verbinden.
Das ist eine gute Frage. Dann wäre also eine konstante Spannung an E+ und E- zu erwarten??? Ich hatte ähnliche Probleme mal mit einem Datalogger von Campbell Scientific und der Excitation Voltage. Daher dachte ich ein gepulstes Signal wäre in Ordnung - von deiner Reaktion zu vermuten sollte das eher nicht der Fall sein.
Dann liegt wohl eventuell das Problem an der Spanungsversorgung durch den Hx711 wenn nur alle 30 Sekunden 4,3 Volt an die Wägezelle weitergegeben wird.
Könnte man das kurzschließen oder überbrücken und die Wägezelle direkt an VCC und GND legen? Nur verständnishalber, den Amplifier braucht man nur für das niedrige Ausgangsignal….
Bezüglich dem B-Kanälen:
Der Hx711 hat auch nochmal B+ und B- für einen weiteren Sensor (bzw. Wägezelle). Hatte hier nur getestet ob eventuell die A-Kanäle kaputt sind. Meine Vermutung ohne nachgelesen zu haben jedoch, dass dann die beiden Sensoren in Reihe geschaltet sein müssen bzw. ein Sensor auf den A-Kanälen angeschlossen sein müssten um auch auf B ein Signal zu bekommen. Das war nur ein Test ohnehin, man sollte ja nichts unversucht lassen.
Nochmals ein Nachtrag: Die gepulste Spannung würde eventuell auch erklären, dass dann doch ab und zu mal ein – ober als zufälliger beschriebener - Wert vorbeirauscht.
treehugger:
Nur ab und zu saust ein recht zufällig wirkender Wert vorbei.
Wenn die Spannungsmessung an S+ und S- synchronisiert zur Versorgung von E+/E- ist ist es kein Problem.
Wenn aber E+/E- gepulst ist und der HX711 unabhängig in seinen Meßzyklen mißt so komm etwas zufälliges heraus.
Wie versorgst Du E+/E-? Pulst Du die Spannung?
Grüße Uwe
uwefed:
Wenn die Spannungsmessung an S+ und S- synchronisiert zur Versorgung von E+/E- ist ist es kein Problem.
Wenn aber E+/E- gepulst ist und der HX711 unabhängig in seinen Meßzyklen mißt so komm etwas zufälliges heraus.
Gut, ein Versuch ist es also Wert, dass ich die E+ und E- direkt vom Arduino versorge. Wenn die Messzyklen auch nur alle 30 Sekunden sind dann kommt natuerlich Schwachsin raus. Das werde ich sehen.
uwefed:
Wie versorgst Du E+/E-? Pulst Du die Spannung?
Am VCC und GND des Hx711 liegen ja 4,95 V konstant an (kann ich mit dem Multimeter messen). Das wird über 5v vom Uno versorgt. Ich tausche den auch mal aus. Außer da ist etwas im Sketch was ich nicht sehe, was dem Hx711 sagt es soll zyklisch die Zelle mit Strom versorgen. Ich sehe nichts!
Und die library ist auch die Standart-library!
Hier der Sketch:
#include "HX711.h"
#define DOUT 3
#define CLK 2
HX711 scale(DOUT, CLK);
float calibration_factor = -96650;
void setup() {
Serial.begin(9600);
Serial.println("HX711 Calibration");
Serial.println("Remove all weight from scale");
Serial.println("After readings begin, place known weight on scale");
Serial.println("Press a,s,d,f to increase calibration factor by 10,100,1000,10000 respectively");
Serial.println("Press z,x,c,v to decrease calibration factor by 10,100,1000,10000 respectively");
Serial.println("Press t for tare");
scale.set_scale();
scale.tare(); //Reset the scale to 0
long zero_factor = scale.read_average(); //Get a baseline reading
Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
Serial.println(zero_factor);
}
void loop() {
scale.set_scale(calibration_factor); //Adjust to this calibration factor
Serial.print("Reading: ");
Serial.print(scale.get_units());
Serial.print(" kg"); //Change this to kg and re-adjust the calibration factor if you follow SI units like a sane person
Serial.print(" calibration_factor: ");
Serial.print(calibration_factor);
Serial.println();
if(Serial.available())
{
char temp = Serial.read();
if(temp == '+' || temp == 'a')
calibration_factor += 10;
else if(temp == '-' || temp == 'z')
calibration_factor -= 10;
else if(temp == 's')
calibration_factor += 100;
else if(temp == 'x')
calibration_factor -= 100;
else if(temp == 'd')
calibration_factor += 1000;
else if(temp == 'c')
calibration_factor -= 1000;
else if(temp == 'f')
calibration_factor += 10000;
else if(temp == 'v')
calibration_factor -= 10000;
else if(temp == 't')
scale.tare(); //Reset the scale to zero
}
}
Der HX711 hat keine Funktion damit die Versorgungsspannung der Wägezelle gepulst wird. Das Pulsen kann eigentlich nur durch das Standbyschalten des HX711 enstehen (Highimpuls am PD_SCK länger als 60µS) siehe Seite 7 des Datenblatts. Darum könnte es ein Fehler im Sketch sein der den PD_SCK Eingang zulange auf High hält.
Versuch mal ein Beispielprogramm zB Bibliothek von Sparkfun und enthaltenes Beispiel
combie:
Die Notwendigkeit kann man leicht mit einem Ohmmeter überprüfen/bestätigen/widerlegen.
Das Shield mal zu überprüfen war keine schlechte Idee. Der Durchgangsprüfer sagt mir, dass E+ und E- miteinander verbunden sind und somit beide mit GND! VCC liegt nicht anscheinend nirgends an.
Dann bleibt mir nichts anderes uebrig als auf das neue zu warten.
combie:
Vcc ist nicht leicht zu überprüfen, denn der Messstrom wird über einen Transistor gesteuert.
Nun gut, aber E+ und E- sollten definitiv nicht miteinader verbunden sein.
Ab und zu bekomme ich auch eine Verbindung mit VCC und allen anderen Ausgaengen (um Spott zu vermeiden, die Waegezelle ist selbstverslaendlich nicht angeschlossen, sondern alles is abgeklemmt!).