
Een 4x A/D omzetter, 16 bits precisie via I2C en zwakke signalen (ADS1115 0.000076V i.p.v.0.0049V Arduino) worden versterkt.
15 bits van de 16, om te meten en één voor het teken. De ADS1115 heeft 4 I2C mogelijkheden welke je kan instellen met de ADDRESS pin. Leuk is dat je ook negative voltages kan meten.
De analoge ingangen mogen niet meer dan 10mA verdragen.
Het is mogenlijk om 4 ADS1115 IC's in één I2C verbinding te gebruiken. Verbind dan de ADDR met GND(0)0x48, met VDD(1)0x49, met SDA(2)0x4A of met SCL(3)0x4B.
ADDR = I2C in address. Met 10K pulled down to Gnd
ALRT = Alert. Normaal gebruik niet verbonden, of aan VDD. Via digitale pin op Arduino de ADS1115 aan/uit te zetten.
GND = Ground min

A0 t/m A3 = analoge ingangen
VDD = Voltage voeding 2.0V t/m 5.5V - 1uF capacitor tussen VDD en gnd.
SDA en SCL = I2C aansluitingen pullup 10 kOhm. SCL-SCL SDA-SDA.
Standaart I2C adres is 0x48.
Verbind de VDD met de de voedingsspanning, de GND met de min.
De ADS1115 programeer je als volgt:
1) schrijf config register
a) 0b 10010000 (7 bits adres gevolgd door lage R/W bit)
b) 0b 00000001
c) 0b 10000100 (MSB van het configregister te schrijven)
d) 0b 10000011 (LSB van het configregister te schrijven)
2) schrijf adres register

a) 0b 10010000 (7 bits adres gevolgd door lage R/W bit)
b) 0b 00000000 (wijst naar conversion register)
3) lees conversion register
a) 0b 10010001 (7 bits adres gevolgd door lage R/W bit)
b) hier moet de ADS1115 reageren met de MSB van het conversion register.
c) hier moet de ADS1115 reageren met de LSB van het conversion register.
Of je gebruikt een libraray.
SDA met A5 van de Arduino en SCL met A4 van de Arduino.
SCL met D1 van ESP8266 en D2 naar SDA.
ADDR via 10K met min voor 1e ADS1115
Met DFRobot_ADS1115 library.
Tabblad 2 van die DFrobot
* @file readVoltage.ino
* @brief connect ADS1115 I2C interface with your board (please reference board compatibility)
* @n The voltage value read by A0 A1 A2 A3 is printed through the serial port.
*
* @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
* @license The MIT License (MIT)
* @author [luoyufeng](yufeng.luo@dfrobot.com),
* @version V1.0
* @date 2019-06-19
* @url https://github.com/DFRobot/DFRobot_ADS1115
*/
#include < Wire.h>
#include < DFRobot_ADS1115.h>
DFRobot_ADS1115 ads(&Wire);
void setup(void)
{
Serial.begin(115200);
ads.setAddr_ADS1115(ADS1115_IIC_ADDRESS0); // 0x48
ads.setGain(eGAIN_TWOTHIRDS); // 2/3x gain
ads.setMode(eMODE_SINGLE); // single-shot mode
ads.setRate(eRATE_128); // 128SPS (default)
ads.setOSMode(eOSMODE_SINGLE); // Set to start a single-conversion
ads.init();
}
void loop(void)
{
if (ads.checkADS1115())
{
int16_t adc0, adc1, adc2, adc3;
adc0 = ads.readVoltage(0);
Serial.print("A0:");
Serial.print(adc0);
Serial.print("mV, ");
adc1 = ads.readVoltage(1);
Serial.print("A1:");
Serial.print(adc1);
Serial.print("mV, ");
adc2 = ads.readVoltage(2);
Serial.print("A2:");
Serial.print(adc2);
Serial.print("mV, ");
adc3 = ads.readVoltage(3);
Serial.print("A3:");
Serial.print(adc3);
Serial.println("mV");
}
else
{
Serial.println("ADS1115 Disconnected!");
}
delay(1000);
}
En na veel experimenteren en me afvragen waarom dat ding niets doet kwam ik er achter dat als ik ADDR niet aan de min verbind..... Waarna ik eindelijk met DFrobot_ADS1115 lib
waarden zag. En omdat ik geen 10K weerstand had maar wel 13K, dat werkte ook.
bronnen:
how2electronics.com
electronoobs.com
datasheet ADS1115
arduino.cc
electropeak.com