MS6511 Objekt erzeugen funktioniert nicht

Hallo Leute,

Ich kriege folgende Fehlermeldung mit der ich nichts anfangen kann:

Altimeter_MS5607_Test_4:7: error: no matching function for call to 'MS5611::MS5611()'

 MS5611 ms5611; //Erzeuge Drucksensor-Objekt

        ^

D:\me\Documents\Arduino\Altimeter_MS5607_Test_4\Altimeter_MS5607_Test_4.ino:7:8: note: candidates are:

In file included from D:\me\Documents\Arduino\Altimeter_MS5607_Test_4\Altimeter_MS5607_Test_4.ino:1:0:

D:\me\Documents\Arduino\libraries\MS5611/MS5611.h:29:5: note: MS5611::MS5611(uint8_t)

     MS5611(uint8_t deviceAddress);

     ^

D:\me\Documents\Arduino\libraries\MS5611/MS5611.h:29:5: note:   candidate expects 1 argument, 0 provided

D:\me\Documents\Arduino\libraries\MS5611/MS5611.h:26:7: note: constexpr MS5611::MS5611(const MS5611&)

 class MS5611

       ^

D:\me\Documents\Arduino\libraries\MS5611/MS5611.h:26:7: note:   candidate expects 1 argument, 0 provided

D:\me\Documents\Arduino\libraries\MS5611/MS5611.h:26:7: note: constexpr MS5611::MS5611(MS5611&&)

D:\me\Documents\Arduino\libraries\MS5611/MS5611.h:26:7: note:   candidate expects 1 argument, 0 provided

D:\me\Documents\Arduino\Altimeter_MS5607_Test_4\Altimeter_MS5607_Test_4.ino: In function 'void ms5611_setup()':

Altimeter_MS5607_Test_4:12: error: 'class MS5611' has no member named 'begin'

   while(!ms5611.begin()) {

                 ^

D:\me\Documents\Arduino\Altimeter_MS5607_Test_4\Altimeter_MS5607_Test_4.ino: In function 'void loop()':

Altimeter_MS5607_Test_4:23: error: 'readTemperature' was not declared in this scope

   temperature = readTemperature();

                                 ^

exit status 1
no matching function for call to 'MS5611::MS5611()'

Hier mal der code:

#include <MS5611.h>
#include <Wire.h>

double pressure;
double temperature;

MS5611 ms5611; //Erzeuge Drucksensor-Objekt

void ms5611_setup() {
//  MS5611 Setup Routine
//  Initialisierung des MS5611 Sensors
  while(!ms5611.begin()) {
    delay(500);
  }
}

void setup() {
  Serial.begin(9600);
  ms5611_setup();
}

void loop() {
  temperature = readTemperature();
  // temperature = ms5611.readTemperature();
  // pressure = ms5611.readPressure();
  Serial.println(temperature);
  Serial.println(pressure);
  delay(10000);
}

Muss die Objektdefinition in der MS5611.h vorhanden sein?
Ich habe mehrere Quellen zu diesem library gefunden.
Deswegen bin ich mir nicht sicher, ob code und lib zusammenpassen.
Und wie müsste eine derartige Objektdefinition in der lib aussehen?

Du versuchst eine Klasse MS5611 zu instanzieren, deren Konstruktor keine Parameter hat (MS5611()).

Die Klasse in Deiner Bibliothek erwartet aber einen Parameter: MS5611(uint8_t deviceAddress);

Oder kurz: Die arme Sau von Library möchte einfach noch wissen über welche Adresse sie mit dem Sensor kommunizieren soll.

Ah Interessant!
Danke für den Tipp. Ich versuch's mal. :slight_smile:

Alles klar, es läuft.
Es lag am Library.

SuesseKleineMaus:
Es lag am Library.

Nein. Es lag daran dass der Benutzer der Library sich nicht informiert hat wie sie funktioniert.