Spannungsmessung mit dem ADS1115 am ESP32

Hallo Gemeinde.
Ich schlage mich gerade mit einem Code zur Spannungsmessung mit dem ESP32 und dem Sensor ADS1115 4 - Kanal ADC

Ich bekomme folgende Fehlermeldung:

Arduino: 1.8.15 (Windows 7), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 256000, None"


In file included from C:\Users\Administrator\Documents\Arduino\Meine Programme\AAA_ESP32\ADC_ADS1115_Spannungsmessung_V01\ADC_ADS1115_Spannungsmessung_V01.ino:9:0:

C:\Users\Administrator\Documents\Arduino\libraries\Adafruit_ADS1X15-master/Adafruit_ADS1X15.h:19:32: fatal error: Adafruit_I2CDevice.h: No such file or directory

Bibliothek Adafruit_ADS1X15-master in Version 2.2.0 im Ordner: C:\Users\Administrator\Documents\Arduino\libraries\Adafruit_ADS1X15-master  wird verwendet

exit status 1

Fehler beim Kompilieren für das Board ESP32 Dev Module.


Ich kapiere nicht was hier falsch ist :roll_eyes: ....die richtige Library ist instaliert. Die "Adafruit_ADS1X15.h" V.2.2.0

Der Test - Code ist hier geklaut

Den ADS1115 habe ich noch nicht. Bekomme ich erst am Dienstag.

Hier noch der Code:

/* Abfrage von analogen Werten am ESP32
   - per GPIO-Pin
   - am ADS1115 mit Weitergabe per I2C
  2021-05-28 Heiko (unsinnsbasis.de)
*/

#define A_PIN 4  // GPIO-Pin für analoge Eingabe

#include <Adafruit_ADS1X15.h> // bindet Wire.h für I2C mit ein
Adafruit_ADS1115 ads;
#define ADS_I2C_ADDR 0x48
const float multiplier = 0.125F; // ADS1115-Multiplikator bei einf. Verstärkung

// ----------------------------------------------------SETUP------------------------------------
void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("Analog-Test ESP32");

  ads.begin(ADS_I2C_ADDR, &Wire);
  // Werte 1-fach verstärken (ESP32 liefert  max. 3,3V)
  ads.setGain(GAIN_ONE);
}
// ----------------------------------------------------LOOP--------------------------------------
void loop() {
  int A_Value;         // Messwert per GPIO
  int adc0;            // Messwert an Kanal 0 des ADS1115
  float A_mv, ads_mv;  // Messwert in Millivolt umgerechnet
  
  A_Value = analogRead(A_PIN);  // 0...4095
  Serial.printf("Rohwert: %d", A_Value);

  // Wert in Millivolt umrechnen
  A_mv = A_Value * 3300.0 / 4095.0;
  Serial.printf("; %4.2f mV", A_mv);

  // Messung per ADS1115
  // - Kanal 0 messen (single-ended)
  // adc0 = ads.readADC_SingleEnded(0);
  // ads_mv = ads.computeVolts(adc0) * 1000;
  // oder
  // - differenzielle Messung an Kanal 0/1
  adc0 = ads.readADC_Differential_0_1();
  ads_mv = adc0 * multiplier;
  Serial.printf("; I2C: %4.2f mV\n", ads_mv);

  delay(200);
}

steht doch drin:

fatal error: Adafruit_I2CDevice.h: No such file or directory

zu finden hier:

Mist, da mein Englisch gleich null ist habe ich bei den Meldungen aufgesteckt. Aber ja es steht drinn dass die Adafruit_I2CDevice.h fehlt.

Danke habs noch installiert. :pleading_face:

Das ist eine Adafruit-Macke, die immer wieder Freude macht... Man muss Adafruit_BusIO immer explizit selbst dazu packen, obwohl die Adafruit-Libs die alle benutzen.

Das ist nicht die einzige Stelle, an der Adafruit drunter liegende Funktionalität zusammen fasst (z.B. bei Displays auch).
Als Macke würde ich das nicht bezeichnen. Ein Blick in die Adafruit_ADS1X15.h genügt ja bereits, um das #include <Adafruit_I2CDevice.h> zu sehen.

Gruß Tommy

Ja, das habe ich bisher nicht gebraucht, dass eine Lib eine andere benötigt. Ich habe gedacht, dass das ein Problem der Adafruit_ADS1X15.h ist. Obwohl es ja in der Fehlermeldung, wenn man sie bis zum Ende anschaut deutlich wird :slightly_frowning_face: :slightly_frowning_face: :stuck_out_tongue_winking_eye: Naja, wieder was gelernt. :smiley:

Das ist seit mehr als 2 Jahren ausgelagert.

u.a.

Ja, ich auch :stuck_out_tongue_winking_eye:

Ich habe inzwischen diese ADS1115 Sensoren bekommen und habe im allgemeinen Thema Spannungsmessung bit dem ESP32 weiter berichtet.