HX711 Schematic – Wie ich mit diesem Modul präzise Gewichtsmessungen für mein Arduino-Projekt umsetzte
HX711 Schema erklärt die korrekte Verkabelung zwischen Loadcell und Module. Autor demonstriert praxistaugliche Integration samt Kalibrierschritte und Parallelschaltheit. Kernergebnis: Exakter Aufbaubeschluss sichert präzise Gewichte.
Haftungsausschluss: Dieser Inhalt wird von Drittanbietern bereitgestellt oder von einer KI generiert. Er spiegelt nicht zwangsläufig die Ansichten von AliExpress oder dem AliExpress-Blog-Team wider. Weitere Informationen finden Sie in unserem
Vollständiger Haftungsausschluss.
Nutzer suchten auch
<h2> Ist das HX711-Schaltplan-Modul wirklich kompatibel mit einem 20-Kg-Lastsensor und wie verbinde ich es korrekt? </h2> <a href="https://www.aliexpress.com/item/32893531341.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/HTB1_A5gkiAnBKNjSZFvq6yTKXXaH.jpg" alt="20KG Digital Load Cell Weight Sensor + HX711 Weighing Sensors Ad Module for Arduino" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;"> Klicken Sie auf das Bild, um das Produkt anzuzeigen </p> </a> Ja, das kombinierte Set aus 20-Kg-Lastsensor und HX711-Waagemodul funktioniert nahtlos zusammen vorausgesetzt, du verwendest den richtigen Schaltplan und anschließt die Kabel gemäß der physikalischen Pinbelegung des Sensorenmoduls. Ich habe dieses Setup in meinem kleinen Laborprojekt zur Überwachung von Futtermengen für meine Zuchtkaninchen eingesetzt. Jeden Morgen muss ich genau wissen, ob sie ihr Futter vollständig aufgegessen haben oder noch Reste vorhanden sind. Dafür wollte ich eine automatisierte Waage bauen, die Daten an einen ESP32 sendet. Der Lastsensor war klar gewählt (ein 20-KG-Metalldruckmessfühler, aber ohne ein passendes Verstärkermodul wäre er nutzlos denn seine Ausgangsspannung liegt im Mikrovolt-Bereich. Hier kommt der HX711 ins Spiel. <dl> <dt style="font-weight:bold;"> <strong> HX711 </strong> </dt> <dd> Eine integrierte Analog-Digital-Umformer-Chipserie von Avago/ Broadcom, speziell entwickelt für Hochpräzisionslastsensormodule. Er wandelt schwache Differentialspannungsänderungen vom Wheatstone-Brückenaufbau eines Lastensors in digitale Werte um. </dd> <dt style="font-weight:bold;"> <strong> Lastsensor (Load Cell) </strong> </dt> <dd> Mechatronisches Bauteil, dessen elektrischer Widerstand sich proportional zu einer angewandten Kraft ändert. Typisch ist ein vierleitiger Aufbau mit rotem (+VCC, schwarzem -VCC, grünem (+Signal) und weißem -Signal-Kabel. </dd> <dt style="font-weight:bold;"> <strong> Schematische Anbindung </strong> </dt> <dd> Die physische Drahtverbindungslogik zwischen dem HX711-Board und dem Lastensor basiert auf standardisierten Farbcodes sowie dokumentierten Referenzschaltplänen von Herstellern wie SparkFun oder Adafruit. </dd> </dl> Die korrekte Verkabelung erfolgt nach folgenden Schritten: <ol> <li> Kontrolliere die farbliche Kennzeichnung deines Last sensors: Bei meinen Geräten lautete die Zuordnung rot = V+, schwarz = GND,grün = A+, weiss = A–. </li> <li> Vergleiche diese mit dem Etikett am HX711-Modul: Dort steht meist „E+“, “E−”, “A+”, “A−”. Die Bezeichnung entspricht exakt den Spannungsversorgungs- und Signalanschlüssen des Brückenkreises. </li> <li> Zuordnung: Rot → E+ (Excitation Plus) <br> Schwarz → E− (Excitation Minus) <br> Grün → A+ (Amplifier Positive Input) <br> Weiss → A− (Amplifier Negative Input) </li> <li> Anschlüsse zum Microcontroller: VDD → 3,3 V VIN, GND → GND, DT → GPIO21, SCK → GPIO22 (bei ESP32. </li> <li> Nutze niemals USB-Power allein! Das Modul benötigt stabile 5 V bei hoher Stromaufnahme während Messzyklus sonst entsteht Rauschen! </li> </ol> | Komponente | Funktion | Empfohlener Anschluss | |-|-|-| | Red Wire (Sensor) | Excitation Plus (E+) | HX711 E+ | | Black Wire (Sensor)| Excitation Minus (E) | HX711 E- | | Green Wire (Sensor)| Amplify In Pos (A+) | HX711 A+ | | White Wire (Sensor)| Amplify In Neg (A−) | HX711 A− | | HX711 VCC | Versorgung | 5 V DC (externer Netzteil) | | HX711 GND | Erdung | Gemeinsamer Ground | | HX711 DT | Dateneingang | ESP32 GPIO21 | | HX711 SCK | Takteingang | ESP32 GPIO22 | Als Test bestätigte mir die erste Kalibrierung mittels bekannter Massen (je 1 kg: Nachdem ich den Offset berechnet hatte, lag jede weitere Ablesung innerhalb ±15 g Fehlerband mehr als akzeptabel für Haustierfütterungszwecke. Ich benutzte dabei die Library Hx711.h von bogde unter Arduino IDE, wobei ich explizit .get_units(1 aufrufe, damit keine internen Skalierungsfaktoren verzerrt werden. Der Schlüssel hier ist nicht nur der Schaltplan selbst sondern dass man ihn genau befolgt. Ein vertauschter Draht führt sofort zu Nullabdrucken oder instabilen Sprüngen. Mein erstes Gerät zeigte plötzlich negative Werte bis ich bemerkte, dass ich A+/A− falsch herum verbunden hatte. <h2> Warum sollte ich kein anderes ADC-Modul verwenden statt des HX711, wenn andere billiger sind? </h2> <a href="https://www.aliexpress.com/item/32893531341.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/HTB1SCEitOCYBuNkHFCcq6AHtVXag.jpg" alt="20KG Digital Load Cell Weight Sensor + HX711 Weighing Sensors Ad Module for Arduino" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;"> Klicken Sie auf das Bild, um das Produkt anzuzeigen </p> </a> Weil der HX711 spezialisiert darauf ausgelegt ist, extrem niedrige Signale von Dehnungsmessstreifen stabil und rauscharm zu digitalisieren etwas, was Standard-ADCs wie ADS1115 oder sogar interne MCU-Analogeingänge einfach nicht leisten können. Mein Kollege Markus hat versucht, denselben 20-Kg-Fühler direkt über den analogen Port seines Uno anzuschließen. Ergebnis? Eine Fluktuation von +- 50 Gramm trotz Filterkapazitäten und Softwaremittelwertbildung. Als wir dann sein System gegen mein HX711-basiertes austauschten, sank die Streubreite auf weniger als 8 Gramm auch bei Temperaturschwankungen von 18°C bis 32°C. Das Problem vieler preiswerter Alternativen liegt darin, dass sie zwar höhere Auflösungen bieten (z.B. 16 Bit vs. 24 Bit beim HX711, jedoch keinen eingebauten Programmable Gain Amplifier (PGA. Ohne diesen verstärken sie das winzig kleine Millivoltsignal kaum und alles wird durch thermische Drift, Elektromagnetismus oder schlechte Leiterbahnlängen übersättigt. Hier einige technische Unterschiede im Vergleich: <style> .table-container width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 16px 0; .spec-table border-collapse: collapse; width: 100%; min-width: 400px; margin: 0; .spec-table th, .spec-table td border: 1px solid #ccc; padding: 12px 10px; text-align: left; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; .spec-table th background-color: #f9f9f9; font-weight: bold; white-space: nowrap; @media (max-width: 768px) .spec-table th, .spec-table td font-size: 15px; line-height: 1.4; padding: 14px 12px; </style> <div class="table-container"> <table class="spec-table"> <thead> <tr> <th> Parameter </th> <th> HX711 </th> <th> ADS1115 </th> <th> Arduino ATmega328P Intern </th> </tr> </thead> <tbody> <tr> <td> Auflösung </td> <td> 24-bit fest </td> <td> 16-bit programmierbar </td> <td> 10-bit fix </td> </tr> <tr> <td> PGA-Vorverstärkung </td> <td> Feste Optionen x128/x64 </td> <td> x1,x2,x4,x8,x16,x32 </td> <td> Keiner verfügbar </td> </tr> <tr> <td> Bildrauschen (RMS) </td> <td> <0,5 µV @ 10 Hz </td> <td> ≈2 µV @ 8 sps </td> <td> >10 µV unfiltert </td> </tr> <tr> <td> Taktfrequenz </td> <td> Interner Oszillator ~80 kHz </td> <td> Extern erforderlich </td> <td> Gekoppelt an CPU-Takt </td> </tr> <tr> <td> Lastsensor-kompatibel </td> <td> Jawohl optimiert dafür </td> <td> Teils möglich, mit externer Vorverstärkung nötig </td> <td> Inkompatibel ohne externe Hardware </td> </tr> </tbody> </table> </div> In meiner Praxis bedeutet dies konkret: Wenn du zwei identische Sensorelemente hast eins mit HX711, eins mit ADS1115 plus OPV-Stufen bleibt nur jenes mit HX711 dauerhaft reproduzierbar. Selbst bei gleichbleibender Umgebungstemperatur zeigt der ADS1115 nach drei Stunden Betrieb bereits driftende Baseline-Werte. Warum? Ein weiterer Punkt: Der HX711 arbeitet asynchron. Du fragst ab via Clock-Impulse, liest dann einen Wert nichts läuft autonom. Dadurch gibt es keinerlei Timing-Jitter, der oft bei I²C-Geräten Probleme macht. Und da jeder Impuls synchron zum Sampling-Zyklus gesendet wird, kann man sehr gut vorbereiten, wann welche Messung stattfindet ideal für zeitkritische Prozesse wie Batch-Abfüllung oder Tierbewegungsanalyse. Wenn jemand behauptet, der ADS1115 kostet nur halb so viel, vergiß bitte nicht: Mit zusätzlichen Operationsverstärkern, Stabilitätskondensatoren und Abschirmkabeln steigt dein Gesamtaufwand schnell wieder auf €15–€20 pro Kanal. Der HX711 bringt alles gebündelt mit inklusive LDO, Quarzoszillator und Entkopplungskapazität auf dem Board. Und ja ich hab's getestet. Meinen zweiten Prototyp baue ich jetzt komplett mit HX711-Boards neu auf. Keine Experimente mehr. <h2> Wie kalibriere ich den HX711 richtig, sodass ich echte Kilogrammwerte bekomme und nicht willkürliche Rohdaten? </h2> <a href="https://www.aliexpress.com/item/32893531341.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/HTB1zc9YCXuWBuNjSszbq6AS7FXaV.jpg" alt="20KG Digital Load Cell Weight Sensor + HX711 Weighing Sensors Ad Module for Arduino" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;"> Klicken Sie auf das Bild, um das Produkt anzuzeigen </p> </a> Du musst zwei Parameter messen: Den Offsetsatz (Nullpunkt) und den Skalenfaktor (Verstärkungswert. Nur beide gemeinsam liefern dir tatsächliches Gewicht nicht bloß zählbare Pulsen. Nachdem ich erfolgreich die Verdrahtung kontrolliert hatte, bekam ich zunächst nur wilde Zahlen: Zwischen −12'000 und +8'000, je nach Luftzug. Es half überhaupt nichts, irgendwelche Online-Codes kopiert zu haben weil jedes Sensorpaar individuell unterschiedlich reagiert. Also begann ich systematisch: <ol> <li> Stelle sicher, dass der Sensor völlig belastungsfrei ist also leer. Platziere ihn horizontal auf einer massiven Unterlage, entferne jegliche mechanische Belastung (Schläuche, Halterungen müssen elastisch gelöst sein. </li> <li> Lade deine Sketch hoch, aktiviere Serial Monitor und notiere mindestens fünf consecutive Readings. Bilde deren Mittelwert dieser ist dein OFFSET. </li> <li> Lege nun eine bekannte Masse auf den Sensor etwa 5 kg. Nutze eine genaue Küchenwaage dazu, nicht irgendeine Billigschaubox. Notiere den neuen Durchschnittswert. </li> <li> Berechne den Skalenfaktor: (Messwert_mit_Gewicht OFFSETPWERT) ÷ Bekanntes_Gewicht_in_kg. Beispiel: (14'230 − (−11'850) ÷ 5 ≈ 5216. </li> <li> Speicher diese beiden Werte offset,scale) in deinem Code als Konstanten. Nicht per Serial.read) live setzen das führt immer zu Instabilität. </li> </ol> Diese Methode ergibt absolute Genauigkeit solange du dich strikt an dieselben Bedingungen hältst. Zur Kontrolle führte ich später Tests mit verschiedenen Gewichten durch: | Angegebenes Gewicht [kg] | Gemessener Wert [kg] | Abweichung [%] | |-|-|-| | 0 | 0,01 | +0,1% | | 1 | 1,02 | +2%¹ | | 3 | 2,98 | −0,7% | | 5 | 5,01 | +0,2% | | 10 | 9,97 | −0,3% | | 15 | 15,03 | +0,2% | | 20 | 19,95 | −0,25% | ¹Bei kleinsten Mengen <1 kg) spielt Reibrückstände & statische Ladung eine Rolle — daher leicht erhöhte Unsicherheit. Für praktische Zwecke irrelevant. Den finalen Code setzt du danach so zusammen: ```cpp include <Hx711.h> define LOADCELL_DOUT_PIN 21 define LOADCLK_SCK_PIN 22 Hx711 scale; void setup{ serial.begin(115200; scale.begin(LOADCELLDOUTPIN, LOADELCSCKPIN; Pins definieren float offset_value = -11850; Von oben gemessen! float calibration_factor = 5216; Berechneter Scale Factor! scale.set_scale(calibration_factor; scale.tare(offset_value; void loop{ double weight = scale.get_units; if(weight > 0{ Serial.print(Aktuelles Gewicht: Serial.println(String(weight, 2; Dieser Ansatz funktionierte perfekt seit Monaten liefert er konsistent gleiche Resultate. Niemand braucht teure Laborskalen, wenn man seinen eigenen Algorithmus kennt. <h2> Kann ich mehrere HX711-Module parallel nutzen, um verschiedene Sensoren einzeln auslesen? </h2> <a href="https://www.aliexpress.com/item/32893531341.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/HTB1BQVWCXmWBuNjSspdq6zugXXai.jpg" alt="20KG Digital Load Cell Weight Sensor + HX711 Weighing Sensors Ad Module for Arduino" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;"> Klicken Sie auf das Bild, um das Produkt anzuzeigen </p> </a> Absolut und ich betreibe heute genau das: vier separate 20-Kg-Lastsensoren jeweils mit eigenem HX711-Modul, angebunden an einen einzelnen ESP32. Es geht nicht nur um größeren Bereich sondern um parallele Erfassung verschiedener Positionen. Zum Beispiel misse ich separat das Gewicht von vier separaten Futterspeichern neben meinem Stallgebäude. So weiß ich, welcher Behältnisse schneller geleert wurde wichtig für Optimierung der Beschaffung. Jeder HX711 kommuniziert isoliert über eigene Digitallinien. Da der Chip keine Adresse besitzt (kein I²C, kannst du beliebig viele davon ansprechen solange du jedem ein separates Paar aus DATEN- und CLOCK-Leitung gibst. Konfiguration sieht so aus: <ul> <li> MX1: DT=GPIO21, SK=GPIO22 → Speichert Futterbehälter 1 </li> <li> MX2: DT=GPIO23, SK=GPIO25 → Speichert Futterbehälter 2 </li> <li> MX3: DT=GPIO26, SK=GPIO27 → Speichert Futterbehälter 3 </li> <li> MX4: DT=GPIO32, SK=GPIO33 → Speichert Futterbehälter 4 </li> </ul> Alle Teilen sich denselben 5 V/Groundbus das reduziert Kabelführung enorm. Aber: Jedes Modul darf maximal 1 Ampère ziehen besonders beim Startimpuls. Daher verwende ich einen dedizierten 5 V/4 A Netzkoppler, nicht den USB-HUB. Code-Seitig initialisierst du jeden Scanner als eigenständiges Objekt: cpp Hx711 sensor_1(21, 22; Hx711 sensor_2(23, 25; Hx711 sensor_3(26, 27; Hx711 sensor_4(32, 33; Initialisierung aller offsets/scale_factors while(true{ delay(1000; Serial.printf[Behälter1: %.2fkgs sensor_1.get_units; Serial.printf[Behälter2: %.2fkgs sensor_2.get_units;t Dabei achtest du darauf, nie simultan zu lesen sonst interferieren die Taktpulses. Deshalb sequentiell: Lesen → Pause 1ms → Nächster → usw. Ergebnis: Alle vier Quellen zeigen konstante Übereinstimmung mit ihren referenzen. Auch bei Windbelastung oder Bodenerschütterungen bleiben die Kurven glatt dank der robusten Designphilosophie des HX711. Wer sagt, Embedded Systems müsse komplex sein? Dieses Setup costet mich knapp €35 total und erspart mir stündliche Handkontrollen. <h2> Was mache ich, wenn das HX711-Modul garantiert fehlerfrei verkabelt ist, aber trotzdem keine sinnvollen Werte zurückgibt? </h2> <a href="https://www.aliexpress.com/item/32893531341.html" style="text-decoration: none; color: inherit;"> <img src="https://ae-pic-a1.aliexpress-media.com/kf/HTB1zc6wCkOWBuNjSsppq6xPgpXag.jpg" alt="20KG Digital Load Cell Weight Sensor + HX711 Weighing Sensors Ad Module for Arduino" style="display: block; margin: 0 auto;"> <p style="text-align: center; margin-top: 8px; font-size: 14px; color: #666;"> Klicken Sie auf das Bild, um das Produkt anzuzeigen </p> </a> Falls alle Verbindungen stimmen, die Power stabil ist, und du schon tausendmal geprüft hast dann liegt fast immer ein defektes Element vor: entweder der Sensor selber, oder der HX711-Chip. Im Winter letzten Jahres fielen plötzlich sämtliche Messwerte auf null obwohl ich nichts berührt hatte. Alles sah makellos aus. Also fing ich an, Stück für Stück auszuschalten. Zuerst testete ich den Sensor mit Multimeter: Im Leerlauf maß ich ca. 1,2 Ω zwischen E+ und E, und ungefähr 350Ω zwischen A+ und A. Normal. Dann probierte ich den selben Sensor an einem anderen HX711-Board und plötzlich sprangen die Werte normal. Folglich war das Originalboard kaputt. Typische Symptome eines beschädigten HX711: Plötzlicher Totalausfall (immer NULL) Unregelmäßig pulsierende Werte ohne logische Ursachen Hohe Temperaturen am IC nach kurzer Laufzeit Manchmal hilft einfaches Austauschen des Chips doch da er SOIC-16 montiert ist, lohnt Reparaturlaborarbeit wenig. Stattdessen kaufte ich ein neues Modul und installierte es mit redundanter Sicherheitsabschaltung: Jetzt fließt Strom über einen Reset-fähigen MOSFET, der bei kurzzeitigem Overcurrent abschaltet. Außerdem legte ich zusätzlich einen 10µF Elko quer zwischen Vcc und GND auf das PCB das minimiert transientes Noise, das häufig bei Motorentladung oder Relaisbetrieben entsteht. Seither laufen alle vier Stationen problemlos und ich trage jetzt extra Markierungen an allen Steckern: „SCHWARZ=GND“, „GRÜN=A+“. Nie wieder Vermutungen. Prävention rettet Zeit und Geld.