Eine Waage mit Arduino erstellen

Ob eine kleine Briefwaage für geringe Gewichte, eine Hängewaage für Pakete oder Koffer, eine Standwaagen für Personen, bis hin zu Objektwaagen mit Messvermögen über 100kg. All diese Messgeräte zur Bestimmung einer Masse, ist mit den aktuell erhältlichen Gewichtssensoren recht einfach, diese selbst zu bauen.

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

Beispiel für eine Briefwaage bis 1Kg

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 gemessenen Werte, vom dem Arduino Nano eigenen 10 Bit Analog-Digital-Wandler, nur sehr grob 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
Arduino Clone Nano Board
LCD mit I2C -Board

Alternative Hardware:
Wägezelle 5kg mit HX711
Wägezelle 10kg mit HX711
Gewichtssensoren für Personenwaage
Dehnungsmessstreifen
Arduino Nano oder 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:

,