Wasserwaage mit ADXL345 (GY-291)

Liebe Arduino Gemeinde,

der unten stehende Sketch wird von mir noch "ausgebaut", damit ich eine Elevatons-Messung bekomme.
Wenn's denn mal läuft.

Seit einiger Zeit hänge ich an recht hartnäckigen Fehlermeldungen:

Wasserwaage_ADXL345:14:9: error: no matching function for call to 'ADXL345::ADXL345()'
ADXL345 acc;

oder:

\Arduino\libraries\ADXL345\src/ADXL345.h:96:5: note: candidate: ADXL345::ADXL345(uint8_t, TwoWire*)
ADXL345(uint8_t i2cAddress, TwoWire *wire=&Wire);

oder:

\Arduino\libraries\ADXL345\src/ADXL345.h:96:5: note: candidate expects 2 arguments, 0 provided

oder:

\Arduino\libraries\ADXL345\src/ADXL345.h:35:7: note: candidate: constexpr ADXL345::ADXL345(const ADXL345&)

class ADXL345 {

und noch einige andere

Und hier der Code/Sketch:

#include <Wire.h>
#include <ADXL345.h>

const float alpha = 0.5;

double fXg = 0;
double fYg = 0;
double fZg = 0;

ADXL345 acc;

void setup()
{
   acc.begin();
   Serial.begin(9600);
   delay(100);
}

void loop()
{
   double pitch, roll, Xg, Yg, Zg;
   acc.read(&Xg, &Yg, &Zg);

   //Low Pass Filter to smooth out data
   fXg = Xg * alpha + (fXg * (1.0 - alpha));
   fYg = Yg * alpha + (fYg * (1.0 - alpha));
   fZg = Zg * alpha + (fZg * (1.0 - alpha));

   //Roll and Pitch Equations
   roll  = (atan2(-fYg, fZg)*180.0)/M_PI;
   pitch = (atan2(fXg, sqrt(fYg*fYg + fZg*fZg))*180.0)/M_PI;

   Serial.print(pitch);
   Serial.print("   ");
   Serial.println(roll);

   delay(50);
}

Verwendet wird:
ein "UNO" (vermutlich China),
die IDE 1.8.9 (alle Bibliotheken sind aktuell)
der ADXL345 (GY-291)

und ein ratloser Mensch. :confused:

Wer kann mir hier weiterhelfen ?

Viele Grüße
AstroArduino

Lies doch einfach mal die Fehlermeldungen (und verstehe sie). Zur Not wirf sie in den Übersetzer Deiner Wahl.
Es ist nur ein Konstruktor mit 2 Parametern (davon 1 Defaultparmeter) definiert, also musst Du den auch benutzen. Er will die I2C-Adresse Deines ADXL345.

Wenn Du die nicht kennst, benutze einen I2C-Scanner.

Ansonsten Link zur Lib und zum Modul.

Gruß Tommy

Hi

Zumindest wird hier ein Beispiel-Sketch gezeigt - wenn Der funktioniert, kannst Du da drauf aufbauen.

Vor die Füße warf man mir Das, nachdem ich 'eine Suchmaschine meiner Wahl' mit folgendem gequält hatte:
GY-291 arduino sketch

MfG

Hallo Postmaster-ino,

vielen Dank für den Tipp.
Das von dir vorgeschlagene Beispiel-Programm kannte ich bereits.

Auch den I²C-Scanner.

Was ich hier nicht verstehe, ist das fehlen der I2C-Adress-Angabe.
Was Tommy56 in seinem Posting monierte.

Im Beispielprogramm wird die I²C-Adresse überhaupt nicht verwendet.

Oder habe ich da was übersehen ?

Grüße

AstroArduino:
Im Beispielprogramm wird die I²C-Adresse überhaupt nicht verwendet.

Dann passt Dein Beispielprogramm entweder nicht zur verwendeten Lib oder es ist ganz einfach falsch.

Gruß Tommy

Hi

Spätestens bei den ausführlichen Meldungen bekommst Du angezeigt, welche Lib der Kompiler auserwählt hat - ob Das nun auch Deine Wahl gewesen wäre, steht nun Mal ganz woanders :slight_smile:

MfG