HX711 liefert unsinnige Werte nach Anschluss an einen Wägebalken

  • Hallo *

    Ich habe hier ein Nebenprojekt laufen: Eine Waage mit einem Wägebalken + HX711 (soll dann an einen ESP8266 dran, ist derzeit mit einem Arduino Nano verbunden).

    Ich verwende die "Standard" HX711 Library von SparkFun (https://github.com/sparkfun/HX711-Load-Cell-Amplifier),
    der Sketch zum Kalibrieren ist ebenfalls recht übersichtlich:

    Spoiler anzeigen

    #include "HX711.h"

    #define DOUT 6
    #define CLK 5

    HX711 scale(DOUT, CLK);

    float calibration_factor = 1000; //-7050 worked for my 440lb max scale setup

    void setup() {
    Serial.begin(57600);
    Serial.println("HX711 calibration sketch");
    Serial.println("Remove all weight from scale");
    Serial.println("After readings begin, place known weight on scale");
    Serial.println("Press + or a to increase calibration factor");
    Serial.println("Press - or z to decrease calibration factor");

    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);
    }

    char s[40];

    void loop() {
    scale.set_scale(calibration_factor); //Adjust to this calibration factor
    Serial.print("Reading: ");
    sprintf(s, "%10.1d", scale.get_units());
    Serial.print(s);
    Serial.print(" lbs"); //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;
    }

    delay(500);
    }

    Der HX711 wird aus dem 5V-Anschluss des Nano versorgt.

    Es kommen folgende (unsinnigen) Werte heraus:

    Die Schaltung ist mit relativ kurzen Verbindungen hergestellt, die Versorgung der HX711-Platine hab ich jetzt (ohne erkennbare Verbesserung) mit einem 220nF C gepuffert.

    Die Werte sind vollkommen irre... als ob das Auslesen des HX711 nicht funktioniert... :wallbash:

    Wollte mal fragen, ob schon mal jemand mit den Teile etwas gemacht hat und vlt. ähnliche Probleme hatte (und die Ursache kennt). :helpnew:

    Grüße. das Zen
    Automatisch zusammengefügt:
    Der verwendet Wägebalken:
    https://www.exp-tech.de/catalogsearch/…ar+%28TAL220%29

  • HX711 liefert unsinnige Werte nach Anschluss an einen Wägebalken? Schau mal ob du hier fündig wirst!

  • Hallo Zentris,

    nachdem ich mir das Datenblatt zum HX-711 durchgelesen habe und Deine gelötete Platine angeschaut habe, ein paar Gedanken:
    - GND-Lötstelle sieht sehr unglücklich aus - ich kann mir vorstellen, dass da schon die Ursache allen Übels liegt
    - DT-Lötstelle sieht auch nicht so prickelnd aus
    - Die ausgelesenen Werte sehen aus, als wenn sie in 16 Bit passen würden - der HX-711 liefert aber 24 Bit Daten... Ich kann mir vorstellen, dass die 24 Bit-Pakete bei Dir in 16 Bit gesteckt werden und die restlichen 8 Bit dann die höherwertigen Bits des nächsten Wertes liefert. Das erklärt dann auch die negativen Werte. Also aus 2 x 24 Bit machst Du 3 x 16 Bit...

    Und besteht da eine temporäre Verbindung zwischen GND und DT?


    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

    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.

    Einmal editiert, zuletzt von Andreas (9. Oktober 2016 um 23:19)

  • Die Lötstellen sehen zwar etwas daneben aus, weil ich da schon "rumgemacht" habe, tun aber.
    (da war zuvor ein längeres Kabel dran, ich hatte das erst in Verdacht, deswegen hab ich das alles abgelötet und nur die kurzen Stummel dran... )

    Die Datenumsetzung mach ich ja nicht selber: da nehme ich die Git-Hub-Library (https://github.com/bogde/HX711) ... ich hab mir die jetzt die letzte Stunde näher angesehen, da wurde vor einigen Tage gefummelt... so ganz versteh ich den Code noch nicht - ist wohl schon zu spät für das Zen... :angel:

    Das Schlimmste: Mein Nano ist tot.
    Hab am HX711 den "RATE"-Pin auf Vcc gelegt (logisch1), um die Umsetzrate definiert auf 80Hz zu legen - auf der Platine hing er in der Luft... weiß der Geier, was die Chinesen sich da gedacht haben... vielleicht funzt das ja sogar, aber ich wollte definierte Verhältnisse schaffen...

    Nach dem Einschalten war der Nano tot... USB liefert Spannung, der Spannungswandler (Längsregler??) scheint weg zu sein..

    Ich mach jetzt FA (bin jetzt etwas demotiviert, fummel schon den halben Abend dran rum),
    Morgen kram ich mal, muss noch einer rumliegen, die HX711 Platine muss ich zuvor nochmal durchmessen, nicht dass die jetzt auch hin ist... *grummel*

    Irgendwo muss hier noch ein andere Nano rumschwirren... Zur Not gehts an den ESP... aber der läuft gerade so schön :)

    Gut's Nächtle, das Zen

  • So, ich will den Thread dann mal zumachen. Zuvor jedoch noch meine Erkenntnisse einkippen:

    Die von mir verwendete HX711 - Library (Link im vorigen Beitrag) vom 2.10. funktioniert bei mir (reproduzierbar auch mit einem Arduino Mini) nicht.
    Ob das an den Änderungen, die am 2.10. vom Autor gemacht wurde, liegt, hab ich nicht verifiziert.

    Ich verwendet jetzt die "Q2HX11.h", die in der Arduino Entwicklungsumgebung nachgeladen werden kann.
    Diese hat zwar nicht so ein "breites" Interface, aber das braucht man eigentlich auch nicht:
    Das Ermitteln des "Null" Wertes ist einfach, die Umrechnung auf Gramm erfolgt durch eine Messung und entsprechender Verrechung - alles keine Raketenkunst.

    Waage ist jetzt im Dauerbetrieb und tut...

    Grüße und zu,
    das Zen

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!