Hardware - Mess-Chip ADS1115
Dieser Spannungs-Mess-Chip wird i.d. Regel auf einer Modulplatine geliefert. Er wird PARALLEL zur Spannungsquelle / zum Verbraucher angeschlossen und übermittelt seine Daten über die I2C-Schnittstelle (digital) an den Computer.
Er kann bis zu 4 Kanäle (Messkreise) bedienen...und bei entsprechender Ansteuerung auch Differenzspannungen zwischen den Kreisen ermitteln...

Die Platine hat folgende Anschlüsse:
VDD und GND | hiermit wird der Sensor mit Strom versorgt, aufgrund des geringen Stromverbrauchs könnt ihr ihn direkt von den 3.5V Anschlüssen des ESP aus betreiben, GND muss auch mit dem zu messenden Stromkreis verbunden sein.... |
SCL und SDA | die Anschlüsse für die I2C-Schnittstelle am Computer, hier gibt der Sensor ein digitales Signal aus, wenn er misst. SCL am ADS1115 wird mit ESP32-GPIO22 und SDA am ADS1115 mit ESP32-GPIO21 verbunden.. |
ADDR | ???? => Handbuch |
A1 bis A4 | hier kommen die POSITIVEN Pole eures Stromkreises dran - beachtet nachfolgende Hinweise !!!! Ihr schaltet den Messchip PARALLEL zum Stromkreis.. |
ACHTUNG:
- der Sensor misst NUR positive Spannungs-Signale, negative Spannungen kleiner -0.3 Volt auf diesem Pol zerstören ggf. den Sensor !!! Sichert euch ggf. mit einer Diode ab...
- die Spannung auf der Mess-Eingangs-Seite darf maximal 0.3 Volt höher als die Versorgungsspannung ( hier 3.5V oder 5V vom ESP) sein, sonst wird der Sensor ebenfalls zerstört. Ihr müsst für grössere Spannungen also einen Spannungsteiler vorsehen, ggf. auch eine Zener-Diode als zusätzlichen Schutz einbauen.
ZITAT........Hier ein kleines Programm für den ESP32..
(Achtung - der Text [code].....[/code] gehört NICHT zum Programm..)
[code]
/* ursprünglicher Code aus Wolles Elektronik-Kiste, auch die
* Bibliothek ist von Wolle...
*
* Der ADS1115 wird vom ESP mit Spannung !!! 3.3 Volt !!!!
* versorgt....die Spannung auf der Mess-Eingangs-Seite darf
* maximal 0.3 Volt höher und minimal -0.3 Volt sein sonst ist der
* ADS1115 Schrott
*
* SCL am ADS1115 wird mit ESP32-GPIO22 und SDA am ADS1115 mit
* ESP32-GPIO21 verbunden..
*
*
*/
// Bibliotheken
#include<ADS1115_WE.h> // für den Sensor
#include<Wire.h> // für I2C
// Definitionen
#define ADS1115_I2C_ADDRESS 0x48 // Zugriffsadresse I2C für PIN A am Sensor
ADS1115_WE adc = ADS1115_WE(ADS1115_I2C_ADDRESS); // Definition als Variable...
// erste Einstellungen
void setup() {
Serial.begin(115200); // Verbindung zum seriellen Monitor
// der Arduino-Oberfläche - der Wert muss passen)
Wire.begin(); // I2C starten
setupAdc(); // den Sensor starten und konfigurieren - als eine seperate Prozedur s.u.
} // ENDE setup
// Dauerschleife
void loop() {
float voltage = 0.0; // eine reele Variable ( mit Komma ) definieren
voltage = adc.getResult_V(); // ihr den Meswert zuweisen
Serial.print("Voltage [V]: "); // im seriellen Monitor ausgeben...
Serial.println(voltage);
delay(1000); // 1 sek bis zur nächsten Messung warten
}// ENDE loop
// seperate Unterprozeduren...
void setupAdc(){
if(!adc.init()){
Serial.print("ADS1115 not connected!");
}
adc.setVoltageRange_mV(ADS1115_RANGE_6144);
adc.setCompareChannels(ADS1115_COMP_0_GND); /// war 0
adc.setMeasureMode(ADS1115_CONTINUOUS);
} // ENDE setupADC
[/code]
ENDE ZITAT
Probiert es doch einfach aus....