Eine Waage mit Arduino erstellen

Ob eine kleine Briefwaage für geringe Gewichte, Hängewaage für Paket oder Koffer, Standwaagen für Personen, bis hin zu Objektwaagen mit Messvermögen über 1000 KG, diese Messgeräte zur Bestimmung einer Masse ist mit den heutigen Gewichtssensoren und Microkontrollern einfach zu erstellen.

Wie in dem Video erklärt, wird eine oder mehrere Wägezellen passend zu den zu wiegenden Objekten benötigt. Beim Kauf auch die maximale Gewichtsangabe beachten. Diese geben das gemessene Gewicht als analogen Wert zurück.

Damit die Wägezelle diese präzisen Werte messen kann, sind Dehnungsmessstreifen auf dem Metallstück angebracht. Auf dem Foto leider nicht zu sehen, da unter der weißen Kleber versteckt.

Dehnungsmessstreifen

Wird nun durch das hinzukommende Gewicht, ein Druck ausgeübt, dehnt sich Metallstück und die gemessene Spannung der Dehnungsmessstreifen ändert sich.
Da jedoch diese Werte vom Arduino Nano eigenen 10 Bit Analog-Digital-Wandler nicht korrekt interpretiert werden kann, wird ein leistungsfähigerer AD-Wandler benötigt.


Somit wird das Verstärkerboard HX711 dazwischen geschaltet, der mit seiner Auflösung von 24 Bit hier präzisere Werte liefert.

Wer sich tiefer in das Thema Dehnungsmessstreifen einlesen möchte, dem empfehle ich auch die Wheatstone’schen Brückenschaltung genauer zu betrachten.

Hardware:
Wägezelle 1kg mit HX711
Nano Board
LCD mit I2C -Board

Alternative Hardware:
Wägezelle 5kg mit HX711
Wägezelle 10kg mit HX711
Gewichtssensoren für Personenwaage
Dehnungsmessstreifen
Arduino Uno

Einfache Schaltung mit Arduino Nano:

Erweiterungsschaltung: Arduino mit Wägezelle, HX711 und LCD incl I2C Modul:

Datenblatt:

1Kg Wägezelle mit AD-HX711

Bibliothek und Quellcode:

Aus Teil 1:
https://github.com/bogde/HX711
Aus Teil 2:
https://github.com/olkal/HX711_ADC

#include "HX711.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int LOADCELL_DOUT_PIN = 4;
const int LOADCELL_SCK_PIN = 5;

HX711 scale;

void setup() {
  Serial.begin(57600);
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
  lcd.init();                      
  lcd.init();
  lcd.backlight();
}

void loop() {

  if (scale.is_ready()) {
    long reading = ((scale.read() * (-0.01))-2217 )/8;
    Serial.print("HX711 hat folgendes gemessen: ");
    Serial.println(reading);
    lcd.setCursor(3, 0);
    lcd.print("Gewicht:");
    lcd.setCursor(3, 1);
    lcd.print(reading);

  } else {
    Serial.println("HX711 nicht gefunden");
  }

  delay(1000);
  lcd.clear();
}

Video:

,