Heim Der Blog Blog Details

Wie baut man eine elektronische Waage mit STM32?

March 14 2025
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
Wie baut man eine elektronische Waage mit STM32? Der Bau einer elektronischen Waage mit einem STM32-Mikrocontroller umfasst die Integration einer Wägezelle, eines Analog-Digital-Wandlers (ADC) und eines STM32-Mikrocontrollers zur Gewichtsmessung und Ergebnisanzeige.

Der Bau einer elektronischen Waage mit einem STM32-Mikrocontroller umfasst die Integration einer Wägezelle, eines Analog-Digital-Wandlers (ADC) und eines STM32-Mikrocontrollers zur Gewichtsmessung und Ergebnisanzeige. Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung zum Bau Ihrer elektronischen Waage:

Wie baut man eine elektronische Waage mit STM32? - Blog - Ampheo

Bauteile, die benötigt werden

  1. STM32-Mikrocontroller (z. B. STM32F103C8T6 oder ein beliebiger STM32 mit ADC).

  2. Wägezelle (z. B. HX711-Wägezelle, häufig in der Gewichtsmessung verwendet).

  3. HX711-Verstärkermodul (zur Verstärkung des Signals der Wägezelle).

  4. Display (z. B. LCD, OLED oder 7-Segment-Display zur Anzeige des Gewichts).

  5. Steckbrett und Verbindungskabel.

  6. Stromversorgung (z. B. 5 V oder 3,3 V, abhängig von den verwendeten Bauteilen).

  7. Drucktasten (optional, für Kalibrierung oder Tara-Funktion).

  8. Widerstände, Kondensatoren und andere grundlegende Bauteile.


Schritt 1: Verstehen der Wägezelle und des HX711-Moduls

  • Eine Wägezelle ist ein Sensor, der Kraft (Gewicht) in ein elektrisches Signal umwandelt.

  • Das HX711-Modul verstärkt das schwache Signal der Wägezelle und liefert ein digitales Signal an den STM32.


Schritt 2: Schaltungsverbindungen

  1. Wägezelle an HX711:

    • Verbinden Sie die Kabel der Wägezelle mit dem HX711-Modul:

      • Roter Draht: E+

      • Schwarzer Draht: E-

      • Weißer Draht: A-

      • Grüner Draht: A+

  2. HX711 an STM32:

    • Verbinden Sie das HX711-Modul mit dem STM32:

      • VCC: 5 V oder 3,3 V (abhängig vom Modul).

      • GND: Masse.

      • DT (Daten): Verbinden Sie mit einem GPIO-Pin (z. B. PA0).

      • SCK (Takt): Verbinden Sie mit einem anderen GPIO-Pin (z. B. PA1).

  3. Display an STM32:

    • Verbinden Sie das Display (z. B. LCD oder OLED) mit dem STM32 über I2C, SPI oder GPIO-Pins, abhängig vom Displaytyp.

  4. Stromversorgung:

    • Stellen Sie sicher, dass alle Komponenten ordnungsgemäß mit Strom versorgt werden (STM32, HX711 und Display).


Schritt 3: STM32-Code schreiben

Verwenden Sie STM32CubeIDE oder eine andere IDE, um die Firmware für den STM32 zu schreiben.

  1. Peripheriegeräte initialisieren:

    • Richten Sie GPIO-Pins für HX711 (DT und SCK) ein.

    • Konfigurieren Sie die Display-Schnittstelle (I2C, SPI oder GPIO).

  2. Daten vom HX711 lesen:

    • Implementieren Sie das HX711-Kommunikationsprotokoll, um die digitalen Gewichtsdaten zu lesen.

    • Beispielcodeausschnitt zum Lesen der Daten:

      c
       
      uint32_t HX711_Read() {
          uint32_t data = 0;
          HAL_GPIO_WritePin(SCK_GPIO_Port, SCK_Pin, GPIO_PIN_RESET); // SCK auf Low ziehen
          while (HAL_GPIO_ReadPin(DT_GPIO_Port, DT_Pin) == GPIO_PIN_SET); // Warten, bis DT auf Low geht
          for (int i = 0; i < 24; i++) {
              HAL_GPIO_WritePin(SCK_GPIO_Port, SCK_Pin, GPIO_PIN_SET); // SCK pulsieren
              data <<= 1;
              if (HAL_GPIO_ReadPin(DT_GPIO_Port, DT_Pin) == GPIO_PIN_SET) {
                  data++;
              }
              HAL_GPIO_WritePin(SCK_GPIO_Port, SCK_Pin, GPIO_PIN_RESET); // SCK auf Low ziehen
          }
          HAL_GPIO_WritePin(SCK_GPIO_Port, SCK_Pin, GPIO_PIN_SET); // 25. Puls, um die Verstärkung einzustellen
          HAL_GPIO_WritePin(SCK_GPIO_Port, SCK_Pin, GPIO_PIN_RESET);
          return data ^ 0x800000; // In einen vorzeichenbehafteten Wert umwandeln
      }
  3. Rohdaten in Gewicht umrechnen:

    • Kalibrieren Sie die Wägezelle, um die Roh-ADC-Werte in Gewicht (z. B. Gramm oder Kilogramm) umzurechnen.

    • Beispiel:

      c
       
      float raw_to_weight(uint32_t raw_value) {
          float calibration_factor = -7050.0; // Anpassen basierend auf der Kalibrierung
          return (raw_value / calibration_factor);
      }
  4. Gewicht anzeigen:

    • Senden Sie das berechnete Gewicht an das Display.

    • Beispiel für ein LCD:

      c
       
      void display_weight(float weight) {
          char buffer[16];
          sprintf(buffer, "Gewicht: %.2f g", weight);
          LCD_Print(buffer);
      }
  5. Kalibrierungs- und Tara-Funktionalität hinzufügen:

    • Verwenden Sie Drucktasten, um die Waage zu kalibrieren oder zu tarieren (auf Null zu setzen).


Schritt 4: Waage kalibrieren

  1. Legen Sie ein bekanntes Gewicht auf die Wägezelle.

  2. Passen Sie den Kalibrierungsfaktor im Code an, bis das angezeigte Gewicht dem bekannten Gewicht entspricht.


Schritt 5: Testen und verfeinern

  • Testen Sie die Waage mit verschiedenen Gewichten, um die Genauigkeit sicherzustellen.

  • Verfeinern Sie den Code und die Kalibrierung nach Bedarf.


Beispielablauf

  1. Schalten Sie das System ein.

  2. Legen Sie ein Objekt auf die Wägezelle.

  3. Der STM32 liest die Daten vom HX711.

  4. Das Gewicht wird berechnet und auf dem Display angezeigt.


Zusätzliche Tipps

  • Verwenden Sie eine stabile Stromversorgung, um Schwankungen in den Messwerten zu vermeiden.

  • Stellen Sie sicher, dass die Wägezelle korrekt montiert und ausbalanciert ist.

  • Fügen Sie eine Filterung hinzu (z. B. gleitender Durchschnitt), um verrauschte Messwerte zu glätten.


Wenn Sie diese Schritte befolgen, können Sie eine funktionelle elektronische Waage mit einem STM32-Mikrocontroller bauen. Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen!

Ampheo