Scale function not defined

Hello Everyone,

I am new to Arduion programming. And I am trying to build a scale with 4 different HX711.
And for some reason I cannot figure out why I get the the response that scale is not defined, I thought I already did that.
And should I change to the function scanf, which is being proposed by the programm.
I am happy about any suggestions.

Here the code and the

Fehlercode:

/Users/leowagner/Documents/Arduino/Versuch_0/Versuch_0.ino: In function 'void setup()':
Versuch_0:53:3: error: 'scale' was not declared in this scope
scale.set_scale();
^~~~~
/Users/leowagner/Documents/Arduino/Versuch_0/Versuch_0.ino:53:3: note: suggested alternative: 'scanf'
scale.set_scale();
^~~~~
scanf
/Users/leowagner/Documents/Arduino/Versuch_0/Versuch_0.ino: In function 'void loop()':
Versuch_0:100:22: error: 'scale' was not declared in this scope
Gewicht = (long) scale.get_units(10);
^~~~~
/Users/leowagner/Documents/Arduino/Versuch_0/Versuch_0.ino:100:22: note: suggested alternative: 'scanf'
Gewicht = (long) scale.get_units(10);
^~~~~
scanf
exit status 1
'scale' was not declared in this scope

#include <HX711.h>

//Eingänge definieren
#define DT1 A1
#define SCK1 AO
#define DT2 A3
#define SCK2 A2
#define DT3 A5
#define SCK3 A4
#define DT4 7
#define SCK4 6

#define HX711_DT 6
#define HX711_SCK 7
#define HX711 scale(HX711_DT, HX711_SCK); //HX711 Eingängen zuordnen

//Variablen deklarieren
char c;
long Gewicht = 999999;
long LetztesGewicht = 0;
const long Max_Abweichung = 500;
long Taragewicht = 1;
float Skalierung = 1.0;
// hier kann das Kalibriergewicht in Gramm eingetragen werden
long KalibrierGewicht = 1000; // 1000 = 1kG Referenzgewicht

void setup() {
//Start des Seriellen Monitors mit der Baudrate von 9600
Serial.begin(9600);
//Serial.println := Ausgabe auf Seriellen Monitor mit Zeilenumbruch
//Serial.print := Ausgabe auf Seriellen Monitor ohne Zeilenumbruch
//Bei Eingabe mit "" erfolgt direkte Ausgabe des Textes, ohne erfolgtAusgabe des Wertes
Serial.println("Waage Kalibrierung");
Serial.print("DT auf ");
Serial.println(HX711_DT);
Serial.print("SCK auf ");
Serial.println(HX711_SCK);
Serial.println();
//Zeitverzögerung von 5 Sekunden
delay(5000);

Serial.println("Zur Kalibrierung der Stockwaage bitte den Anweisungen folgen!");
Serial.println();
Serial.println("Waage ohne Gewicht - Kalibrierung mit '1' und 'Enter' starten!");
Serial.println();
while (c != '1') { //Warte auf Eingabe einer "1"
c = Serial.read();
};
c = 'x';
Serial.println();
Serial.print("Kalibriere ... ");
scale.set_scale();
Serial.print(" ... ");
delay(100); //Warte 0,1 Sekunden
scale.read_average(20);
Serial.println(" ..."); //Standard Skalierung setzen
Serial.print("Kalibriere ... ");
scale.set_scale();
Serial.print(" ... ");
delay(100); //Warte 0,1 Sekunden
scale.read_average(20); //Feststellen der Aktuellen Werte
Serial.println(" ...");

Taragewicht = scale.read_average(20); //Taragewicht setzten, ohne Gewicht
Serial.print("Waage mit genau ");
Serial.print(KalibrierGewicht);
Serial.println(" Gramm beschweren - Kalibrierung mit '2' und 'Enter' starten!");
Serial.println();
while (c != '2') {
c = Serial.read();
};
//Warte auf Eingabe einer "2"
Serial.println();
Serial.print("Kalibriere ... ");
scale.set_offset(Taragewicht); //Einfügen des Taragweichtes als Offset
Serial.print(" ... ");
delay(100);
scale.get_units(20); //Auslesen des Durchschnitts von 20 gemessenen Werten

Serial.println(" ...");
scale = ((scale.get_units(20)) / KalibrierGewicht);
//Zwischenspeichern des tausendstel des Durchschnittswertes
scale.set_scale(Skalierung); //Skalierung für die Wägezelle abspeichern //Ausgabe der Ermittelten werte (Aktuelles Gewicht,Taragewicht und Skalierung)

Serial.print("Pruefe Gewicht: ");
Serial.println(scale.get_units(20), 1);
Serial.println();
Serial.print("Taragewicht: ");
Serial.println(Taragewicht);
Serial.println();
Serial.print("Skalierung: ");
Serial.println(Skalierung);
Serial.println();
}
void loop() {
for (byte j = 0 ; j < 3; j++) { // Anzahl der Wiederholungen, wenn Abweichung zum letzten Gewicht zu hoch
Serial.println("Messung wird vorgenommen ...");
Gewicht = (long) scale.get_units(10);
if ( ((Gewicht - LetztesGewicht) < Max_Abweichung) and ((LetztesGewicht

  • Gewicht) < Max_Abweichung) ) break; // Abweichung für Fehlererkennung
    Serial.println("Warte auf stabilen Messwert ...");
    if (j < 3) delay(3000); // Wartezeit zwischen Wiederholungen
    }
    LetztesGewicht = Gewicht; //Zwischenspeichern des Gewichtes
    Serial.print("Gewicht: "); //Ausgabe des Gewichtes
    Serial.print(Gewicht);
    Serial.println(" g");
    delay(5000);
    Serial.print("Skalierung: "); //Ausgabe von Skalierung und Taragewicht
    Serial.println(Skalierung);
    Serial.print("Taragewicht: ");
    Serial.println(Taragewicht);
    delay(5000);
    }

It might be better if this question was asked in the German section. Would you like it moved there ?

How do I move it there ?

I can move it if you would like me to ?

Do you want it moved ?

Yes please

Moved as requested

#define HX711 scale(HX711_DT, HX711_SCK); //HX711 Eingängen zuordnen

Da dürfte beim Kopieren ein define zuviel rein gerutscht sein.
Probier mal:

HX711 scale(HX711_DT, HX711_SCK); //HX711 Eingängen zuordnen

Gruß Tommy

Hi Thommy,

hab ich vorher so gehabt, dann habe ich aber eine andere Fehlermeldung bekommen, dass HX711 nicht definiert ist, weshalb ich dann den HX711 definiert habe.