Probleme mit Wiegesensor HX711

Hallo Leute,
Ich bin neu hier im Forum, Rainer aus Belgien und absoluter NEULING in Sachen Arduino!!

ich habe eine Schwerpunktwaage für Flugzeugmodelle nach FMT nachgebaut.
Alles angeschlossen wie vorgegeben...??? Wäre schön wenn jemand helfen kann.

Beim überprüfen/Übertragen der Sketchs bekomme ich folgenden Fehler:

no matching function for call to HX711::HX711 (int, int)
Arduino: 1.8.7 (Windows 8), Board: "Arduino/Genuino Uno"

Kalibrierungssketch:8:17: error: no matching function for call to 'HX711::HX711(int, int)'

HX711 scale(6, 7);//Diese Pins für Kalibrierung der zweiten Waage ändern

^

In file included from C:\Program Files (x86)\Arduino\examples\Kalibrierungssketch\Kalibrierungssketch.ino:7:0:

C:\Program Files (x86)\Arduino\libraries\HX711-master\src/HX711.h:30:3: note: candidate: HX711::HX711()

HX711();

^

C:\Program Files (x86)\Arduino\libraries\HX711-master\src/HX711.h:30:3: note: candidate expects 0 arguments, 2 provided

C:\Program Files (x86)\Arduino\libraries\HX711-master\src/HX711.h:19:7: note: candidate: constexpr HX711::HX711(const HX711&)

class HX711

^

C:\Program Files (x86)\Arduino\libraries\HX711-master\src/HX711.h:19:7: note: candidate expects 1 argument, 2 provided

Bibliothek HX711-master in Version 0.7.2 im Ordner: C:\Program Files (x86)\Arduino\libraries\HX711-master wird verwendet
exit status 1
no matching function for call to 'HX711::HX711(int, int)'

hier die sketchs:

/*
 * Hauptsketch - Wiegesketch
*/
 



#include <LiquidCrystal_I2C.h>
//#include <Wire.h>  
#include <HX711.h> //eventuell fehlt hier das entsprechende Library

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
HX711 scale1(4, 5);
HX711 scale2(6, 7);

long TaragewichtA = 62963; // Hier ist der Wert aus der Kalibrierung für Waage F1 einzutragen 
float SkalierungA = 394.45; // Hier ist der Wert aus der Kalibrierung für Waage F1 einzutragen 
 
long TaragewichtB = -50213; // Hier ist der Wert aus der Kalibrierung für Waage F2 einzutragen 
float SkalierungB = 391.35; // Hier ist der Wert aus der Kalibrierung für Waage F2 einzutragen
 
long GewichtA = 999999;
long GewichtB = 999999;  

                  
 
 
void setup() { 

  
  Serial.begin(9600); 
    
  lcd.init();
  lcd.init();
  lcd.backlight();
  
  int a= (GewichtA);
  int b= (GewichtB);
  int c = a + b;
  int d = 250;//das ist die Entfernung der beiden Auflagepunkte-eventuell ändern
  int cog = ((GewichtB)*(250))/(c);//wenn "d" abgeändert wurde, dann muss der Wert (250) ebenfalls geändert werden!
}
 
 
void loop() {
 

  scale1.set_gain(128); 
  scale1.set_offset(TaragewichtA);  
  scale1.set_scale(SkalierungA); 
  GewichtA= scale1.get_units(10); 
 
  scale2.set_gain(128); 
  scale2.set_offset(TaragewichtB);  
  scale2.set_scale(SkalierungB); 
  GewichtB= scale2.get_units(10); 
 
  Serial.print("Waage F1=  ");
  Serial.print(GewichtA);
  Serial.print("g  ");
 
  Serial.print("Waage F2=  ");
  Serial.print(GewichtB);
  Serial.print("g  ");

  Serial.println("D=250 mm");//diese Zeile kann man auch weglassen
  
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Waage F1 = ");
  if (GewichtA<10) {(GewichtA)=0;}
  lcd.print(GewichtA);
  lcd.print(" g");
  
  lcd.setCursor(0,1);
  lcd.print("Waage F2 = ");
  if (GewichtB<10) {(GewichtB)=0;}
  lcd.print(GewichtB);
  lcd.print(" g");
  
  lcd.setCursor(0,2);
  //lcd.print("D = 250 mm");

 

  int c =  (GewichtA) + (GewichtB);
  Serial.print("Gesamtgewicht  ");
  Serial.print(c);
  Serial.print("g  ");

  int cog = ((GewichtB)*(250))/(c);
  Serial.print("CoG = ");
  if (GewichtB<10) {(cog)=125;}
  Serial.print(cog);
  Serial.print("mm  ");
  
  lcd.setCursor(0,2);
  lcd.print("Gesamtgewicht= ");
  lcd.print(c);
  lcd.print(" g");

  //delay(3000);
  
  
  lcd.setCursor(0,3);
  lcd.print("CoG = ");
  lcd.print(cog);
  lcd.print(" mm");
 
 
  
  delay(3000);
} [7code]

hauptsketch.doc (30 KB)

kalibrierungssketch.doc (27.5 KB)

Ein Sketch als *.doc ???

Du solltest die hx711 Lib einbinden

Und Du solltest die Sketche direkt als Text hier einbinden.
Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Ich habe jetzt die Library HX711_ADC eingebunden, mit einem Sketch für eine einfache Waage klappts!

Beim Kalibrierungs Sketch kommt jetzt folgende Meldung:

HX711_ADC has no member named set_scale

// Kalibrierung auf Waage 2
#include <HX711_ADC.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
HX711_ADC scale(6, 7);//Diese Pins für Kalibrierung der zweiten Waage ändern

char c;
long Tara;
float Scale;

void setup()
  {
  Serial.begin(9600);
  delay(5000);

  Serial.println(F("Zur Kalibrierung  bitte den Anweisungen folgen!"));
  Serial.println();
  Serial.println(F("Waage ohne Gewicht - Kalibrierung mit '1' und 'Enter' starten!"));
  Serial.println();
  while (c != '1') {c = Serial.read();};
  c = 'x';
  Serial.println(F("Kalibriere ... "));
  Serial.println();
  scale.set_scale();
  scale.read_average(10);
  Tara = scale.read_average(10);
  Serial.println(F("Waage mit genau 1 kg belasten - Kalibrierung mit '2' und 'Enter' starten!"));
  Serial.println();
  while (c != '2') {c = Serial.read();};
  Serial.println(F("Kalibriere ... "));
  Serial.println();
  scale.set_offset(Tara);
  scale.get_units(10);
  Scale = ((scale.get_units(10)) / 1000);
  scale.set_scale(Scale);
  Serial.print(F("Pruefe Gewicht: "));
  Serial.println(scale.get_units(10), 1);
  Serial.println();
  Serial.print(F("Taragewicht: "));
  Serial.println(Tara);
  Serial.println();
  Serial.print(F("Skalierung: "));
  Serial.println(Scale);
  Serial.println();
  }

void loop()
  {}

Es gibt mehrere HX711-Libs. Welche hast Du? (Link bitte)

Evtl. passt Dein Sketch nicht zur Lib. Du solltest imme von den Beispielen, die die Lib mitbringt, ausgehen.

Gruß Tommy

Am besten die passende Lib zum Sketch nehmen.

Gruß Fips

an der Library kann es nicht liegen, untenstehender Sketch läuft einwandfrei!

 // (c) Michael Schoeffler 2017, http://www.mschoeffler.de
    #include <HX711_ADC.h> // https://github.com/olkal/HX711_ADC
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C library
    HX711_ADC LoadCell(4, 5); // parameters: dt pin, sck pin<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 0x27 is the i2c address of the LCM1602 IIC v1 module (might differ)
    void setup() {
      LoadCell.begin(); // start connection to HX711
      LoadCell.start(2000); // load cells gets 2000ms of time to stabilize
      LoadCell.setCalFactor(999.0); // calibration factor for load cell => strongly dependent on your individual setup
      lcd.begin(16, 2); // begins connection to the LCD module
      lcd.backlight(); // turns on the backlight
    }
    void loop() {
      LoadCell.update(); // retrieves data from the load cell
      float i = LoadCell.getData(); // get output value
      lcd.setCursor(0, 0); // set cursor to first row
      lcd.print("Weight[g]:"); // print out to LCD
      lcd.setCursor(0, 1); // set cursor to secon row
      lcd.print(i); // print out the retrieved value to the second row
    }

Rainer511be:
an der Library kann es nicht liegen, untenstehender Sketch läuft einwandfrei!

Wenn Du meinst, ...

Gruß Tommy

:wink: ;D "meinen"?? nein ich kann es beweisen!!

Rainer511be:
:wink: ;D "meinen"?? nein ich kann es beweisen!!

Du bist schon ein toller Hecht!

Vereinfacht gesagt, wenn der Sketch zur Library passt klappt es öfter.

Gruß Fips

So, alles auf Anfang....
Derjenige der die Sketchs geschrieben hat, hat mir seine HX711 Libraries geschickt. Er verwendet die IDE 1.7.8, diese habe ich auch Instaliert und nochmal versucht.

Ich bekomme jetzt noch folgende Fehlermeldung:

collect 2.exe: ld returned 1 exit status

Weis da jemand weiter? Danke, Gruß, Rainer.

Mit Sicherheit ist das nicht die komplette Fehlermeldung.

ok, dann hier mal die ganze Meldung....

C:\Users\Bettina\AppData\Local\Temp\cc5KHZCJ.ltrans0.ltrans.o: In function `__static_initialization_and_destruction_0':

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:8: undefined reference to `HX711::HX711(unsigned char, unsigned char, unsigned char)'

C:\Users\Bettina\AppData\Local\Temp\cc5KHZCJ.ltrans0.ltrans.o: In function `setup':

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:27: undefined reference to `HX711::set_scale(float)'

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:28: undefined reference to `HX711::read_average(unsigned char)'

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:29: undefined reference to `HX711::read_average(unsigned char)'

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:35: undefined reference to `HX711::set_offset(long)'

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:36: undefined reference to `HX711::get_units(unsigned char)'

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:37: undefined reference to `HX711::get_units(unsigned char)'

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:38: undefined reference to `HX711::set_scale(float)'

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:40: undefined reference to `HX711::get_units(unsigned char)'

C:\Users\Bettina\AppData\Local\Temp\cc5KHZCJ.ltrans0.ltrans.o: In function `__static_initialization_and_destruction_0':

C:\Users\Bettina\Documents\Arduino\Kalibrierung\sketch_may21b/sketch_may21b.ino:8: undefined reference to `HX711::~HX711()'

collect2.exe: error: ld returned 1 exit status

Bibliothek HX711 im Ordner: C:\Program Files (x86)\Arduino\libraries\HX711 (legacy) wird verwendet
exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.

Die HX711-Lib ist nicht richtig installiert. Er findet zwar die Headerdatei (HX711_ADC), aber anscheinend nicht die zugehörige cpp-Datei, so dass der Linker nichts hat was er linken kann.

Gruß Tommy