Mini-SPS von Moeller (Easy)


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Küchenwaage mit automatischer Abschaltung


Küchenwaage mit Gewichtssensor und Schale


In dem folgenden Versuch konstruieren wir einfache Küchenwaage, mit der Gewichte bis zu 1 kg gewogen werden können. Der Hauptakteur der Schaltung ist ein aus Aluminium bestehender Gewichtssensor, an dem spezielle Dehnungsmessstreifen vormontiert sind. Im Handel sind Sensoren für unterschiedliche Gewichtsbereiche erhältlich. Die Signale des Sensors werden mit dem HX711-Modul ausgewertet und zur weiteren Bearbeitung digital zur Verfügung gestellt. Die Modulsignale wiederum werden von Arduino Nano ausgelesen und im Programm in konkrete Gewichtswerte umgewandelt. Das Gewicht des gerade gewogenen Gegenstandes wird mit einer 7-Segmentanzeige sichtbar gemacht. Eine Kombination aus einem Taster, Relais und Transistor übernimmt die Aufgabe der automatischen Abschaltung, die dann ins Spiel kommt, wenn die Waage über eine vorbestimmte Zeit nicht benutzt wurde.

Das Messprinzip

Gewichtssensor

Gewichtssensor

Bevor die Messeinrichtung in Betrieb genommen werden kann, sind auch bei provisorischer Ausführung einige Vorbereitungsarbeiten notwendig. Es wird eine feste und stabile Unterlage benötigt, an der der Sensor montiert werden kann. Anschließend wird eine Waagschale gebraucht, auf der diverse Gegenstände, die gewogen werden sollen, aufgestellt werden. Beide Teile werden mit dem Sensor fest verbunden.
Das Messprinzip selbst ist einfach. Bei einer Belastung des Sensors ändern durch Dehnung oder Stauung die an ihm angebrachten Messstreifen ihren Widerstand. Die Widerstandsänderung ist dabei zum Dehnungs- oder Stauungsgrad und damit zum ausgeübten Druck direkt proportional. Durch entsprechende Verschaltung dieser Widerstände kann der an ihnen entstehende Spannungsabfall gemessen und mit einem Analog-Digital-Wandler digitalisiert werden. Diese Aufgabe übernimmt in dem Fall der Chip HX711. Zusammen mit der dazugehörigen Umgebungselektronik bildet er ein Modul, an das der Sensor direkt angeschlossen wird. Die digitalen Signale werden dann zum Arduino weitergeleitet.

Modul mit HX711

Modul mit HX711

Schaltplan

Schaltplan

Schaltplan

In dem ausgeschalteten Zustand, da das Relais nicht eingeschaltet ist, verbraucht die Schaltung keinen Strom. Alle Komponenten sind spannungsfrei. Betätigt man den Taster S1, werden Arduino und die Spule von K1 mit Strom versorgt. Das Relais schaltet noch nicht, da der Transistor T1 noch nicht angesteuert wurde. Arduino läuft hoch. Sobald das Programm gestartet wird, werden die Ausgänge D2 und D3 gesetzt. Der Transistor T1 wird leitend und das Relais zieht an. Damit geht das Relais in Selbsthaltung, die von Arduino bestimmt wird. Die blaue Leuchtdiode geht ebenfalls an und signalisiert, dass der Taster losgelassen werden kann. Arduino wird jetzt über den Schließer-Kontakt des Relais K1 mit Spannung versorgt.
Die anderen Komponenten, der Gewichtssensor mit seinem HX711-Modul und die 7-Segmentanzeige mit dem TM1637 Treiber, werden mit 5V – Spannung von Arduino versorgt. Unsere Küchenwaage ist einsatzbereit.
Komplett aufgebaute Testschaltung könnte dann wie folgt aussehen:

Testschaltung

Testschaltung


Das Programm (Sketch)

Das Programm verwendet zwei Bibliotheken, die vorinstalliert werden müssen. Für die Anzeige mit dem Treiber TM1637 ist die Bibliothek TM1637Display.h zuständig. Die Auswertung der Signale von dem HX711-Modul übernimmt die Bibliothek HX711_ADC.h. Anzumerken ist, dass man sich auch für andere Bibliotheken entscheiden kann, es stehen mehrere zur Verfügung. Die Installation kann mit dem Bibliotheksverwalter durchgeführt werden:

Bibliothek HX711_ADC

Installation der Bibliothek HX711_ADC.h

Vor der Nutzung der Waage muss sie kalibriert werden. Als Unterstützung steht in der Bibliothek (Beispiele) der Sketch Calibration.ino zur Verfügung. Mithilfe des Programms kann die Kalibrierung ziemlich schnell und reibungslos durchgeführt werden. Dabei wird allerdings ein Gewicht mit einem bekannten Wert oder eine Waage benötigt. Die Vorgehensweise ist in dem Beispiel beschrieben. Die Gewichtsangaben und Ausgaben erfolgen in Gramm.

Nachdem die Kalibrierung erfolgreich durchgeführt wurde, kann man sich dem Programm widmen. Sobald Arduino hochgefahren ist und das Programm gestartet wurde (hierzu muss der Taster S1 betätigt werden), werden die Ausgänge D2 und D3 auf HIGH gesetzt. Dank dessen wird das Relais K1 eingeschaltet und geht in Selbsthaltung. Der Zustand wird mit der blauen Leuchtdiode LED1 zusätzlich visuell signalisiert. In Abständen von 100 ms erfolgt dann permanent die Abfrage des aktuellen Gewichtswertes, der anschließend auf der 7-Segmentanzeige sichtbar wird.
Werden über einen längeren Zeitraum (hier 30 Sek) keine Messungen durchgeführt, setzt Arduino den Ausgang D3 auf LOW. Damit wird der Transistor T1 gesperrt und das Relais K1 fällt ab. Die Spannungsversorgung, die über den Schließer-Kontakt des Relais K1 Arduino versorgte, wird unterbrochen. Die gesamte Gerätschaft geht aus. Für den Neustart muss der Taster S1 wieder betätigt werden.
Listing:

// ***************************************************************************************
// Küchenwaage mit automatischer Abschaltung
// Gewichtssensor mit HX711 (Modul), 7-Segmentanzeige mit TM1637 (Modul)
// Arduino Nano, IDE 1.8.13
// TM1637Display.h V1.2.0
// HX711_ADC.h V1.2.8
// ***************************************************************************************

#include <TM1637Display.h>                                  // Display Bibliothek
#define CLK 11
#define DIO 12
TM1637Display display(CLK, DIO);

#include <HX711_ADC.h>                                      // HX711 Bibliothek
#define DT 4
#define SCK 5
HX711_ADC LoadCell(DT, SCK);
                                                            
int LED_Programm_laeuft = 2;                                // Ausgang Leuchtdiode
int Relais_Selbsthaltung = 3;                               // Ausgang Selbsthaltung
float Kalibrierungswert = 1111.43;                          // ermittelt mit Calibration.ino
String Ausgabe;                                             // für 7-Segmentanzeige
int Aus_Zaehler;                                            // Automatisch Aus

void setup() {
    display.setBrightness(10);                              // Anzeige Helligkeit
    display.clear();
    pinMode (LED_Programm_laeuft, OUTPUT);
    pinMode (Relais_Selbsthaltung, OUTPUT);
    digitalWrite (LED_Programm_laeuft, HIGH);               // Leuchtdiode Ein
    digitalWrite (Relais_Selbsthaltung, HIGH);              // Selbsthaltung Ein
    LoadCell.begin();
    LoadCell.start(2000); 
    LoadCell.setCalFactor(Kalibrierungswert);
}

void loop() {
    LoadCell.update();
    float Gewicht = LoadCell.getData();                     // Gewicht ermitteln
    Ausgabe = String (Gewicht);                             // Gewicht in String umwandeln
    int Gewicht_int = abs (Gewicht);

    if (Gewicht_int == 0)                                   // nach 30 sek automatisch Aus
        { ++Aus_Zaehler; } else { Aus_Zaehler = 0; }
    if (Aus_Zaehler == 300) 
        { digitalWrite (Relais_Selbsthaltung, LOW); }       // Selbsthaltung auflösen

    display.showNumberDecEx(Ausgabe.toInt(), 0b00000000, false, 4, 4);  // Ausgabe Display
    delay (100);                                            // Wartezeit 100 ms
}
// ***************************************************************************************


Kurzvideo

Kurzvideo: Küchenwaage mit automatischer Abschaltung


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz