A library for ADS1015 and ADS1115 from Texas Instruments.

Fork of ADS1015 by Arve Seljebu

v1.3 - Added ADS1115_REG_CONFIG_DR & m_dataRate Jul 21. 2014 - Corrected m_conversionDelay - Now there is readADC() that returns counts and readADC_V() that returns voltage

Files at this revision

API Documentation at this revision

Comitter:
Sambo007
Date:
Tue Jul 22 06:04:13 2014 +0000
Parent:
1:a628fdaed351
Commit message:
v1.3 - Added ADS1115_REG_CONFIG_DR & m_dataRate - Jul 21. 2014; - Corrected m_conversionDelay; - Now there is readADC() that returns counts and readADC_V() that returns voltage;

Changed in this revision

ADS1x15.cpp Show annotated file Show diff for this revision Revisions of this file
ADS1x15.h Show annotated file Show diff for this revision Revisions of this file
Adafruit_ADS1015.cpp Show diff for this revision Revisions of this file
Adafruit_ADS1015.h Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADS1x15.cpp	Tue Jul 22 06:04:13 2014 +0000
@@ -0,0 +1,306 @@
+/**************************************************************************/
+/*!
+    @file     ADS1x15.cpp
+    @author   K.Townsend (Adafruit Industries)
+    @license  BSD (see LICENSE.txt)
+
+    Ported to mbed by Arve Seljebu - arve0.github.io
+
+    Driver for the ADS1015/ADS1115 ADC
+
+    This is a library for the Adafruit MPL115A2 breakout
+    ----> https://www.adafruit.com/products/1083
+
+    Adafruit invests time and resources providing this open source code,
+    please support Adafruit and open-source hardware by purchasing
+    products from Adafruit!
+
+    @section  HISTORY
+
+    v1.0   - First release
+    v1.1   - Added ADS1115 support - W. Earl
+    v1.1.1 - Ported to mbed - Arve Seljebu
+    v1.2   - Fixed error in readADC_SingleEnded() sign bit - Sam Berjawi
+	v1.3	- Added ADS1115_REG_CONFIG_DR & m_dataRate 		- Sam W Berjawi Jul 21. 2014
+			- Corrected m_conversionDelay
+			- Now there is readADC() that returns counts and readADC_V() that returns voltage
+*/
+/**************************************************************************/
+
+#include "ADS1x15.h"
+
+/**************************************************************************/
+/*!
+    @brief  Writes 16-bits to the specified destination register
+*/
+/**************************************************************************/
+void ADS1015::writeRegister(uint8_t i2cAddress, uint8_t reg, uint16_t value) {
+  char cmd[3];
+  cmd[0] = (char)reg;
+  cmd[1] = (char)(value>>8);
+  cmd[2] = (char)(value & 0xFF);
+  m_i2c->write(i2cAddress, cmd, 3); 
+}
+
+/**************************************************************************/
+/*!
+    @brief  Reads 16-bits from the specified register
+*/
+/**************************************************************************/
+uint16_t ADS1015::readRegister(uint8_t i2cAddress, uint8_t reg) {
+  char data[2];
+  data[0] = reg; // temporary use this to send address to conversion register
+  m_i2c->write(i2cAddress, data, 1);
+  m_i2c->read(i2cAddress, data, 2);
+  return (data[0] << 8 | data [1]);
+}
+
+/**************************************************************************/
+/*!
+    @brief  Instantiates a new ADS1015 class w/appropriate properties
+*/
+/**************************************************************************/
+ADS1015::ADS1015(I2C* i2c, uint8_t i2cAddress)
+{
+  // shift 7 bit address 1 left: read expects 8 bit address, see I2C.h
+   m_i2cAddress = i2cAddress << 1;
+   m_bitShift = 4;
+   m_i2c = i2c;
+}
+
+/**************************************************************************/
+/*!
+    @brief  Instantiates a new ADS1115 class w/appropriate properties
+*/
+/**************************************************************************/
+ADS1115::ADS1115(I2C* i2c, uint8_t i2cAddress)
+{
+  // shift 7 bit address 1 left: read expects 8 bit address, see mbed's I2C.h
+  m_i2cAddress = i2cAddress << 1;
+  m_bitShift = 0;
+  m_i2c = i2c;
+}
+
+/**************************************************************************/
+/*! 
+    @brief	Reads the A2D conversion result, measuring depending on chan parameter either
+			the single chan  voltage or the differential voltage between the P (AIN_i) and N (AIN_j) inputs.
+			Generates a signed value since the difference can be either positive or negative.
+
+			The +/-6.144V and +/-4.096V settings express the full-scale range of the ADC scaling.
+			In no event should more than VDD + 0.3V be applied to this device
+
+	@return Count
+*/
+/**************************************************************************/
+int16_t ADS1015::readADC(chan_t chan, adsVR_t voltageRange, adsDR_t dataRate)
+{
+	// Prepare Config Register
+	uint16_t config = ADS1015_REG_CONFIG_OS_SINGLE    | // Begin a single conversion (when in power-down mode)
+					ADS1015_REG_CONFIG_CQUE_NONE    | // Disable the comparator (default val)
+					ADS1015_REG_CONFIG_CLAT_NONLAT  | // Non-latching (default val)
+					ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
+					ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
+					ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)
+
+	// Set channel(s)
+	config |= chan;
+
+	// Set PGA/voltage range
+	config |= voltageRange;
+
+	// Set Data rate
+	config |= dataRate;
+
+	// Write config register to the ADC
+	writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);
+
+	// TODO: Modify to alternatively use the RDY (EOC) pin instead of waiting. Maybe also use interrupt and continuous mode
+
+	if (m_bitShift == 4) // ADS1015
+		switch (dataRate) {
+			case ADS1015_DR_128SPS:
+				m_conversionDelay = 1.0 / 128;
+				break;
+			case ADS1015_DR_250SPS:
+				m_conversionDelay = 1.0 / 250;
+				break;
+			case ADS1015_DR_490SPS:
+				m_conversionDelay = 1.0 / 490;
+				break;
+			case ADS1015_DR_920SPS:
+				m_conversionDelay = 1.0 / 920;
+				break;
+			case ADS1015_DR_1600SPS:
+				m_conversionDelay = 1.0 / 1600;
+				break;
+			case ADS1015_DR_2400SPS:
+				m_conversionDelay = 1.0 / 2400;
+				break;
+			case ADS1015_DR_3300SPS:
+				m_conversionDelay = 1.0 / 3300;
+				break;
+		}
+	else // ADS1115
+		switch (dataRate) {
+			case ADS1115_DR_8SPS:
+				m_conversionDelay = 1.0 / 8;
+				break;
+			case ADS1115_DR_16SPS:
+				m_conversionDelay = 1.0 / 16;
+				break;
+			case ADS1115_DR_32SPS:
+				m_conversionDelay = 1.0 / 32;
+				break;
+			case ADS1115_DR_64SPS:
+				m_conversionDelay = 1.0 / 64;
+				break;
+			case ADS1115_DR_128SPS:
+				m_conversionDelay = 1.0 / 128;
+				break;
+			case ADS1115_DR_250SPS:
+				m_conversionDelay = 1.0 / 250;
+				break;
+			case ADS1115_DR_475SPS:
+				m_conversionDelay = 1.0 / 475;
+				break;
+			case ADS1115_DR_860SPS:
+				m_conversionDelay = 1.0 / 860;
+				break;
+		}
+
+	// Wait for the conversion to complete
+	wait(m_conversionDelay);
+
+	// Read the conversion results
+	uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
+	if (m_bitShift == 0)
+	{
+	return (int16_t)res;
+	}
+	else
+	{
+	// Shift 12-bit results right 4 bits for the ADS1015,
+	// making sure we keep the sign bit intact
+	if (res > 0x07FF)
+	{
+	  // negative number - extend the sign to 16th bit
+	  res |= 0xF000;
+	}
+	return (int16_t)res;
+	}
+}
+
+/**************************************************************************/
+/*!
+    @brief	Reads the A2D conversion result, measuring depending on chan parameter either
+			the single chan  voltage or the differential voltage between the P (AIN_i) and N (AIN_j) inputs.
+			Generates a signed value since the difference can be either positive or negative.
+
+			The +/-6.144V and +/-4.096V settings express the full-scale range of the ADC scaling.
+			In no event should more than VDD + 0.3V be applied to this device
+
+	@return Voltage
+*/
+/**************************************************************************/
+float ADS1015::readADC_V(chan_t chan, adsVR_t voltageRange, adsDR_t dataRate)
+{
+float bit_V = 0.;
+
+	//											ADS1015		ADS1115
+	// +/-6.144V range = Gain 2/3		1-bit = 3mV     	0.1875mV
+	// +/-4.096V range = Gain 1			1-bit = 2mV      	0.125mV
+	// +/-2.048V range = Gain 2		 	1-bit = 1mV      	0.0625mV
+	// +/-1.024V range = Gain 4			1-bit = 0.5mV    	0.03125mV
+	// +/-0.512V range = Gain 8			1-bit = 0.25mV   	0.015625mV
+	// +/-0.256V range = Gain 16		1-bit = 0.125mV  	0.0078125mV
+
+	switch (voltageRange) {
+		case VR_p_m_6_144V:
+			bit_V = 3.0e-3f * powf(2, -4 + m_bitShift);
+			break;
+		case VR_p_m_4_096V:
+			bit_V = 2.0e-3f * powf(2, -4 + m_bitShift);
+			break;
+		case VR_p_m_2_048V:
+			bit_V = 1.0e-3f * powf(2, -4 + m_bitShift);
+			break;
+		case VR_p_m_1_024V:
+			bit_V = 0.5e-3f * powf(2, -4 + m_bitShift);
+			break;
+		case VR_p_m_0_512V:
+			bit_V = 0.25e-3f * powf(2, -4 + m_bitShift);
+			break;
+		case VR_p_m_0_256V:
+			bit_V = 0.125e-3f * powf(2, -4 + m_bitShift);
+			break;
+	}
+
+	return (readADC(chan, voltageRange, dataRate) * bit_V);
+}
+
+/**************************************************************************/
+/*!
+    @brief  Sets up the comparator to operate in basic mode, causing the
+            ALERT/RDY pin to assert (go from high to low) when the ADC
+            value exceeds the specified threshold.
+
+            This will also set the ADC in continuous conversion mode.
+*/
+/**************************************************************************/
+void ADS1015::startComparator_SingleEnded(chan_t chan, adsVR_t voltageRange, adsDR_t dataRate, int16_t threshold)
+{
+	// Prepare Config Register
+	  uint16_t config = ADS1015_REG_CONFIG_CQUE_1CONV   | // Comparator enabled and asserts on 1 match
+			  	  	  	ADS1015_REG_CONFIG_CLAT_LATCH   | // Latching mode
+			  	  	  	ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
+			  	  	  	ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
+			  	  	  	ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)
+
+	// Set channel(s)
+	config |= chan;
+
+	// Set PGA/voltage range
+	config |= voltageRange;
+
+	// Set Data rate
+	config |= dataRate;
+
+	// Set the high threshold register
+	// Shift 12-bit results left 4 bits for the ADS1015
+	writeRegister(m_i2cAddress, ADS1015_REG_POINTER_HITHRESH, threshold << m_bitShift);
+
+	// Write config register to the ADC
+	writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);
+}
+
+/**************************************************************************/
+/*!
+    @brief  In order to clear the comparator, we need to read the
+            conversion results.  This function reads the last conversion
+            results without changing the config value.
+*/
+/**************************************************************************/
+int16_t ADS1015::getLastConversionResults()
+{
+  // Wait for the conversion to complete
+  wait_ms(m_conversionDelay);
+
+  // Read the conversion results
+  uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
+  if (m_bitShift == 0)
+  {
+    return (int16_t)res;
+  }
+  else
+  {
+    // Shift 12-bit results right 4 bits for the ADS1015,
+    // making sure we keep the sign bit intact
+    if (res > 0x07FF)
+    {
+      // negative number - extend the sign to 16th bit
+      res |= 0xF000;
+    }
+    return (int16_t)res;
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADS1x15.h	Tue Jul 22 06:04:13 2014 +0000
@@ -0,0 +1,200 @@
+/**************************************************************************/
+/*!
+    @file       ADS1x15.h
+    @author     K. Townsend (Adafruit Industries)
+    @license    BSD (see LICENSE.txt)
+    
+    Ported to mbed by Arve Seljebu - arve0.github.io
+
+	ADS1015 12-bit I2C ADC+PGA and ADS1115 16-bit I2C ADC+PGA
+
+    This is a library for the Adafruit ADS1015 and ADS1015 breakout boards
+    ----> https://www.adafruit.com/products/1083
+
+    Adafruit invests time and resources providing this open source code,
+    please support Adafruit and open-source hardware by purchasing
+    products from Adafruit!
+
+    @section  HISTORY
+
+	v1.0	- First release
+	v1.1	- Added ADS1115 support - W. Earl
+	v1.1.1	- Ported to mbed - Arve Seljebu
+	v1.2	- Fixed error in readADC_SingleEnded() sign bit	- Sam W Berjawi
+	v1.3	- Added ADS1115_REG_CONFIG_DR & ads1015_DR_t 	- Sam W Berjawi Jul 21. 2014
+			- Corrected m_conversionDelay
+			- Now there is readADC() that returns counts and readADC_V() that returns voltage
+*/
+/**************************************************************************/
+
+#ifndef ADS1015_H
+#define ADS1015_H
+
+#include <mbed.h>
+
+/*=========================================================================
+    I2C ADDRESS/BITS
+    -----------------------------------------------------------------------*/
+    #define ADS1015_ADDRESS                 (0x48)    // 0100 1000 (ADDR = GND)
+/*=========================================================================*/
+
+/*=========================================================================
+    CONVERSION DELAY (in mS)
+    -----------------------------------------------------------------------*/
+//    #define ADS1015_CONVERSIONDELAY         (1)
+//    #define ADS1115_CONVERSIONDELAY         (8)
+/*=========================================================================*/
+
+/*=========================================================================
+    POINTER REGISTER
+    -----------------------------------------------------------------------*/
+    #define ADS1015_REG_POINTER_MASK        (0x03)
+    #define ADS1015_REG_POINTER_CONVERT     (0x00)
+    #define ADS1015_REG_POINTER_CONFIG      (0x01)
+    #define ADS1015_REG_POINTER_LOWTHRESH   (0x02)
+    #define ADS1015_REG_POINTER_HITHRESH    (0x03)
+/*=========================================================================*/
+
+/*=========================================================================
+    CONFIG REGISTER
+    -----------------------------------------------------------------------*/
+    #define ADS1015_REG_CONFIG_OS_MASK      (0x8000)
+    #define ADS1015_REG_CONFIG_OS_SINGLE    (0x8000)  // Write: Set to start a single-conversion
+    #define ADS1015_REG_CONFIG_OS_BUSY      (0x0000)  // Read: Bit = 0 when conversion is in progress
+    #define ADS1015_REG_CONFIG_OS_NOTBUSY   (0x8000)  // Read: Bit = 1 when device is not performing a conversion
+
+//    #define ADS1015_REG_CONFIG_MUX_MASK     (0x7000)
+//    #define ADS1015_REG_CONFIG_MUX_DIFF_0_1 (0x0000)  // Differential P = AIN0, N = AIN1 (default)
+//    #define ADS1015_REG_CONFIG_MUX_DIFF_0_3 (0x1000)  // Differential P = AIN0, N = AIN3
+//    #define ADS1015_REG_CONFIG_MUX_DIFF_1_3 (0x2000)  // Differential P = AIN1, N = AIN3
+//    #define ADS1015_REG_CONFIG_MUX_DIFF_2_3 (0x3000)  // Differential P = AIN2, N = AIN3
+//    #define ADS1015_REG_CONFIG_MUX_SINGLE_0 (0x4000)  // Single-ended AIN0
+//    #define ADS1015_REG_CONFIG_MUX_SINGLE_1 (0x5000)  // Single-ended AIN1
+//    #define ADS1015_REG_CONFIG_MUX_SINGLE_2 (0x6000)  // Single-ended AIN2
+//    #define ADS1015_REG_CONFIG_MUX_SINGLE_3 (0x7000)  // Single-ended AIN3
+
+//    #define ADS1015_REG_CONFIG_PGA_MASK     (0x0E00)
+//    #define ADS1015_REG_CONFIG_PGA_6_144V   (0x0000)  // +/-6.144V range = Gain 2/3			ADS1015: 1-bit = 3mV     ADS1115: 0.1875mV
+//    #define ADS1015_REG_CONFIG_PGA_4_096V   (0x0200)  // +/-4.096V range = Gain 1			ADS1015: 1-bit = 2mV     ADS1115: 0.125mV
+//    #define ADS1015_REG_CONFIG_PGA_2_048V   (0x0400)  // +/-2.048V range = Gain 2 (default)	ADS1015: 1-bit = 1mV     ADS1115: 0.0625mV
+//    #define ADS1015_REG_CONFIG_PGA_1_024V   (0x0600)  // +/-1.024V range = Gain 4			ADS1015: 1-bit = 0.5mV   ADS1115: 0.03125mV
+//    #define ADS1015_REG_CONFIG_PGA_0_512V   (0x0800)  // +/-0.512V range = Gain 8			ADS1015: 1-bit = 0.25mV  ADS1115: 0.015625mV
+//    #define ADS1015_REG_CONFIG_PGA_0_256V   (0x0A00)  // +/-0.256V range = Gain 16			ADS1015: 1-bit = 0.125mV ADS1115: 0.0078125mV
+
+    #define ADS1015_REG_CONFIG_MODE_MASK    (0x0100)
+    #define ADS1015_REG_CONFIG_MODE_CONTIN  (0x0000)  // Continuous conversion mode
+    #define ADS1015_REG_CONFIG_MODE_SINGLE  (0x0100)  // Power-down single-shot mode (default)
+
+//    #define ADS1015_REG_CONFIG_DR_MASK		(0x00E0)
+//    #define ADS1015_REG_CONFIG_DR_128SPS	(0x0000)  //  128 SPS
+//    #define ADS1015_REG_CONFIG_DR_250SPS	(0x0020)  //  250 SPS
+//    #define ADS1015_REG_CONFIG_DR_490SPS	(0x0040)  //  490 SPS
+//    #define ADS1015_REG_CONFIG_DR_920SPS	(0x0060)  //  920 SPS
+//    #define ADS1015_REG_CONFIG_DR_1600SPS	(0x0080)  // 1600 SPS (default)
+//    #define ADS1015_REG_CONFIG_DR_2400SPS	(0x00A0)  // 2400 SPS
+//    #define ADS1015_REG_CONFIG_DR_3300SPS	(0x00C0)  // 3300 SPS
+//
+//    #define ADS1115_REG_CONFIG_DR_MASK		(0x00E0)
+//    #define ADS1115_REG_CONFIG_DR_8SPS		(0x0000)  //    8 SPS
+//    #define ADS1115_REG_CONFIG_DR_16SPS		(0x0020)  //   16 SPS
+//    #define ADS1115_REG_CONFIG_DR_32SPS		(0x0040)  //   32 SPS
+//    #define ADS1115_REG_CONFIG_DR_64SPS		(0x0060)  //   64 SPS
+//    #define ADS1115_REG_CONFIG_DR_128SPS	(0x0080)  //  128 SPS (default)
+//    #define ADS1115_REG_CONFIG_DR_250SPS	(0x00A0)  //  250 SPS
+//    #define ADS1115_REG_CONFIG_DR_475SPS	(0x00C0)  //  475 SPS
+//    #define ADS1115_REG_CONFIG_DR_860SPS	(0x00E0)  //  860 SPS
+
+    #define ADS1015_REG_CONFIG_CMODE_MASK   (0x0010)
+    #define ADS1015_REG_CONFIG_CMODE_TRAD   (0x0000)  // Traditional comparator with hysteresis (default)
+    #define ADS1015_REG_CONFIG_CMODE_WINDOW (0x0010)  // Window comparator
+
+    #define ADS1015_REG_CONFIG_CPOL_MASK    (0x0008)
+    #define ADS1015_REG_CONFIG_CPOL_ACTVLOW (0x0000)  // ALERT/RDY pin is low when active (default)
+    #define ADS1015_REG_CONFIG_CPOL_ACTVHI  (0x0008)  // ALERT/RDY pin is high when active
+
+    #define ADS1015_REG_CONFIG_CLAT_MASK    (0x0004)  // Determines if ALERT/RDY pin latches once asserted
+    #define ADS1015_REG_CONFIG_CLAT_NONLAT  (0x0000)  // Non-latching comparator (default)
+    #define ADS1015_REG_CONFIG_CLAT_LATCH   (0x0004)  // Latching comparator
+
+    #define ADS1015_REG_CONFIG_CQUE_MASK    (0x0003)
+    #define ADS1015_REG_CONFIG_CQUE_1CONV   (0x0000)  // Assert ALERT/RDY after one conversions
+    #define ADS1015_REG_CONFIG_CQUE_2CONV   (0x0001)  // Assert ALERT/RDY after two conversions
+    #define ADS1015_REG_CONFIG_CQUE_4CONV   (0x0002)  // Assert ALERT/RDY after four conversions
+    #define ADS1015_REG_CONFIG_CQUE_NONE    (0x0003)  // Disable the comparator and put ALERT/RDY in high state (default)
+/*=========================================================================*/
+
+typedef enum
+{
+	chan_0_1		= 0x0000, // Differential P = AIN0, N = AIN1 (default)
+	chan_0_3		= 0x1000, // Differential P = AIN0, N = AIN3
+	chan_1_3		= 0x2000, // Differential P = AIN1, N = AIN3
+	chan_2_3		= 0x3000, // Differential P = AIN2, N = AIN3
+	chan_0			= 0x4000, // Single-ended AIN0
+	chan_1			= 0x5000, // Single-ended AIN1
+	chan_2			= 0x6000, // Single-ended AIN2
+	chan_3			= 0x7000  // Single-ended AIN3
+} chan_t;
+
+// The +/-6.144V and +/-4.096V settings express the full-scale range of the ADC scaling.
+// In no event should more than VDD + 0.3V be applied to this device
+typedef enum
+{	//																	ADS1015		ADS1115
+	VR_p_m_6_144V	= 0x0000, // +/-6.144V range = Gain 2/3		1-bit = 3mV     	0.1875mV
+	VR_p_m_4_096V	= 0x0200, // +/-4.096V range = Gain 1		1-bit = 2mV      	0.125mV
+	VR_p_m_2_048V	= 0x0400, // +/-2.048V range = Gain 2	 	1-bit = 1mV      	0.0625mV
+	VR_p_m_1_024V	= 0x0600, // +/-1.024V range = Gain 4		1-bit = 0.5mV    	0.03125mV
+	VR_p_m_0_512V	= 0x0800, // +/-0.512V range = Gain 8		1-bit = 0.25mV   	0.015625mV
+	VR_p_m_0_256V	= 0x0A00  // +/-0.256V range = Gain 16		1-bit = 0.125mV  	0.0078125mV
+} adsVR_t; // VR: Voltage Range
+
+typedef enum
+{
+	ADS1015_DR_128SPS	= 0x0000, //  128 SPS
+	ADS1015_DR_250SPS 	= 0x0020, //  250 SPS
+	ADS1015_DR_490SPS 	= 0x0040, //  490 SPS
+	ADS1015_DR_920SPS 	= 0x0060, //  920 SPS
+	ADS1015_DR_1600SPS 	= 0x0080, // 1600 SPS
+	ADS1015_DR_2400SPS 	= 0x00A0, // 2400 SPS
+	ADS1015_DR_3300SPS 	= 0x00C0, // 3300 SPS
+
+	ADS1115_DR_8SPS		= 0x0000, //    8 SPS
+	ADS1115_DR_16SPS	= 0x0020, //   16 SPS
+	ADS1115_DR_32SPS	= 0x0040, //   32 SPS
+	ADS1115_DR_64SPS	= 0x0060, //   64 SPS
+	ADS1115_DR_128SPS	= 0x0080, //  128 SPS
+	ADS1115_DR_250SPS	= 0x00A0, //  250 SPS
+	ADS1115_DR_475SPS	= 0x00C0, //  475 SPS
+	ADS1115_DR_860SPS	= 0x00E0  //  860 SPS
+} adsDR_t; // DR: Data Rate
+
+
+class ADS1015
+{
+protected:
+   // Instance-specific properties
+   uint8_t   	m_i2cAddress;
+//   ads1015_DR_t	m_dataRate;
+   float		m_conversionDelay;
+   uint8_t		m_bitShift;
+   I2C*			m_i2c;
+   
+ public:
+  ADS1015(I2C* i2c = 0, uint8_t i2cAddress = ADS1015_ADDRESS); // set i2c ptr = 0 to allow ADS1115 to use this as default constructor
+  int16_t   readADC(chan_t chan, adsVR_t voltageRange, adsDR_t dataRate);
+  float		readADC_V(chan_t chan, adsVR_t voltageRange, adsDR_t dataRate);
+  void      startComparator_SingleEnded(chan_t chan, adsVR_t voltageRange, adsDR_t dataRate, int16_t threshold);
+  int16_t   getLastConversionResults();
+
+ private:
+  uint16_t  readRegister(uint8_t i2cAddress, uint8_t reg);
+  void 		writeRegister(uint8_t i2cAddress, uint8_t reg, uint16_t value);
+};
+
+// Derive from ADS1015 & override construction to set properties
+class ADS1115 : public ADS1015
+{
+ public:
+  ADS1115(I2C* i2c, uint8_t i2cAddress = ADS1015_ADDRESS);
+};
+
+#endif
--- a/Adafruit_ADS1015.cpp	Wed May 21 13:12:24 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,359 +0,0 @@
-/**************************************************************************/
-/*!
-    @file     Adafruit_ADS1015.cpp
-    @author   K.Townsend (Adafruit Industries)
-    @license  BSD (see LICENSE.txt)
-
-    Ported to mbed by Arve Seljebu - arve0.github.io
-
-    Driver for the ADS1015/ADS1115 ADC
-
-    This is a library for the Adafruit MPL115A2 breakout
-    ----> https://www.adafruit.com/products/1083
-
-    Adafruit invests time and resources providing this open source code,
-    please support Adafruit and open-source hardware by purchasing
-    products from Adafruit!
-
-    @section  HISTORY
-
-    v1.0   - First release
-    v1.1   - Added ADS1115 support - W. Earl
-    v1.1.1 - Ported to mbed - Arve Seljebu
-    v1.2   - Fixed error in readADC_SingleEnded() sign bit - Sam Berjawi
-*/
-/**************************************************************************/
-
-#include <mbed.h>
-#include "Adafruit_ADS1015.h"
-
-/**************************************************************************/
-/*!
-    @brief  Writes 16-bits to the specified destination register
-*/
-/**************************************************************************/
-void Adafruit_ADS1015::writeRegister(uint8_t i2cAddress, uint8_t reg, uint16_t value) {
-  char cmd[3];
-  cmd[0] = (char)reg;
-  cmd[1] = (char)(value>>8);
-  cmd[2] = (char)(value & 0xFF);
-  m_i2c->write(i2cAddress, cmd, 3); 
-}
-
-/**************************************************************************/
-/*!
-    @brief  Reads 16-bits from the specified register
-*/
-/**************************************************************************/
-uint16_t Adafruit_ADS1015::readRegister(uint8_t i2cAddress, uint8_t reg) {
-  char data[2];
-  data[0] = reg; // temporary use this to send address to conversion register
-  m_i2c->write(i2cAddress, data, 1);
-  m_i2c->read(i2cAddress, data, 2);
-  return (data[0] << 8 | data [1]);
-}
-
-/**************************************************************************/
-/*!
-    @brief  Instantiates a new ADS1015 class w/appropriate properties
-*/
-/**************************************************************************/
-Adafruit_ADS1015::Adafruit_ADS1015(I2C* i2c, uint8_t i2cAddress) 
-{
-  // shift 7 bit address 1 left: read expects 8 bit address, see I2C.h
-   m_i2cAddress = i2cAddress << 1;
-   m_conversionDelay = ADS1015_CONVERSIONDELAY;
-   m_bitShift = 4;
-   m_gain = GAIN_TWOTHIRDS; /* +/- 6.144V range (limited to VDD +0.3V max!) */
-   m_i2c = i2c;
-}
-
-/**************************************************************************/
-/*!
-    @brief  Instantiates a new ADS1115 class w/appropriate properties
-*/
-/**************************************************************************/
-Adafruit_ADS1115::Adafruit_ADS1115(I2C* i2c, uint8_t i2cAddress)
-{
-  // shift 7 bit address 1 left: read expects 8 bit address, see mbed's I2C.h
-  m_i2cAddress = i2cAddress << 1;
-  m_conversionDelay = ADS1115_CONVERSIONDELAY;
-  m_bitShift = 0;
-  m_gain = GAIN_TWOTHIRDS; /* +/- 6.144V range (limited to VDD +0.3V max!) */
-  m_i2c = i2c;
-}
-
-/**************************************************************************/
-/*!
-    @brief  Sets the gain and input voltage range
-*/
-/**************************************************************************/
-void Adafruit_ADS1015::setGain(adsGain_t gain)
-{
-  m_gain = gain;
-}
-
-/**************************************************************************/
-/*!
-    @brief  Gets a gain and input voltage range
-*/
-/**************************************************************************/
-adsGain_t Adafruit_ADS1015::getGain()
-{
-  return m_gain;
-}
-
-/**************************************************************************/
-/*!
-    @brief  Gets a single-ended ADC reading from the specified channel
-*/
-/**************************************************************************/
-//uint16_t Adafruit_ADS1015::readADC_SingleEnded(uint8_t channel) { SWB
-int16_t Adafruit_ADS1015::readADC_SingleEnded(uint8_t channel) {
-  if (channel > 3)
-  {
-    return 0;
-  }
-  
-  // Start with default values
-  uint16_t config = ADS1015_REG_CONFIG_CQUE_NONE    | // Disable the comparator (default val)
-                    ADS1015_REG_CONFIG_CLAT_NONLAT  | // Non-latching (default val)
-                    ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
-                    ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
-                    ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
-                    ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)
-
-  // Set PGA/voltage range
-  config |= m_gain;
-
-  // Set single-ended input channel
-  switch (channel)
-  {
-    case (0):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_0;
-      break;
-    case (1):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_1;
-      break;
-    case (2):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_2;
-      break;
-    case (3):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_3;
-      break;
-  }
-
-  // Set 'start single-conversion' bit
-  config |= ADS1015_REG_CONFIG_OS_SINGLE;
-
-  // Write config register to the ADC
-  writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);
-
-  // Wait for the conversion to complete
-  wait_ms(m_conversionDelay);
-
-  // Read the conversion results
-  // Shift 12-bit results right 4 bits for the ADS1015
-  //return readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;  SWB
-
-  // SWB
-  // Shift 12-bit results right 4 bits for the ADS1015
-  uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
-
-  if (m_bitShift == 0)
-  {
-    return (int16_t)res;
-  }
-  else
-  {
-    // Shift 12-bit results right 4 bits for the ADS1015,
-    // making sure we keep the sign bit intact
-    if (res > 0x07FF)
-    {
-      // negative number - extend the sign to 16th bit
-      res |= 0xF000;
-    }
-    return (int16_t)res;
-  }
-}
-
-/**************************************************************************/
-/*! 
-    @brief  Reads the conversion results, measuring the voltage
-            difference between the P (AIN0) and N (AIN1) input.  Generates
-            a signed value since the difference can be either
-            positive or negative.
-*/
-/**************************************************************************/
-int16_t Adafruit_ADS1015::readADC_Differential_0_1() {
-  // Start with default values
-  uint16_t config = ADS1015_REG_CONFIG_CQUE_NONE    | // Disable the comparator (default val)
-                    ADS1015_REG_CONFIG_CLAT_NONLAT  | // Non-latching (default val)
-                    ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
-                    ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
-                    ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
-                    ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)
-
-  // Set PGA/voltage range
-  config |= m_gain;
-                    
-  // Set channels
-  config |= ADS1015_REG_CONFIG_MUX_DIFF_0_1;          // AIN0 = P, AIN1 = N
-
-  // Set 'start single-conversion' bit
-  config |= ADS1015_REG_CONFIG_OS_SINGLE;
-
-  // Write config register to the ADC
-  writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);
-
-  // Wait for the conversion to complete
-  wait_ms(m_conversionDelay);
-
-  // Read the conversion results
-  uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
-  if (m_bitShift == 0)
-  {
-    return (int16_t)res;
-  }
-  else
-  {
-    // Shift 12-bit results right 4 bits for the ADS1015,
-    // making sure we keep the sign bit intact
-    if (res > 0x07FF)
-    {
-      // negative number - extend the sign to 16th bit
-      res |= 0xF000;
-    }
-    return (int16_t)res;
-  }
-}
-
-/**************************************************************************/
-/*! 
-    @brief  Reads the conversion results, measuring the voltage
-            difference between the P (AIN2) and N (AIN3) input.  Generates
-            a signed value since the difference can be either
-            positive or negative.
-*/
-/**************************************************************************/
-int16_t Adafruit_ADS1015::readADC_Differential_2_3() {
-  // Start with default values
-  uint16_t config = ADS1015_REG_CONFIG_CQUE_NONE    | // Disable the comparator (default val)
-                    ADS1015_REG_CONFIG_CLAT_NONLAT  | // Non-latching (default val)
-                    ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
-                    ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
-                    ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
-                    ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)
-
-  // Set PGA/voltage range
-  config |= m_gain;
-
-  // Set channels
-  config |= ADS1015_REG_CONFIG_MUX_DIFF_2_3;          // AIN2 = P, AIN3 = N
-
-  // Set 'start single-conversion' bit
-  config |= ADS1015_REG_CONFIG_OS_SINGLE;
-
-  // Write config register to the ADC
-  writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);
-
-  // Wait for the conversion to complete
-  wait_ms(m_conversionDelay);
-
-  // Read the conversion results
-  uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
-  if (m_bitShift == 0)
-  {
-    return (int16_t)res;
-  }
-  else
-  {
-    // Shift 12-bit results right 4 bits for the ADS1015,
-    // making sure we keep the sign bit intact
-    if (res > 0x07FF)
-    {
-      // negative number - extend the sign to 16th bit
-      res |= 0xF000;
-    }
-    return (int16_t)res;
-  }
-}
-
-/**************************************************************************/
-/*!
-    @brief  Sets up the comparator to operate in basic mode, causing the
-            ALERT/RDY pin to assert (go from high to low) when the ADC
-            value exceeds the specified threshold.
-
-            This will also set the ADC in continuous conversion mode.
-*/
-/**************************************************************************/
-void Adafruit_ADS1015::startComparator_SingleEnded(uint8_t channel, int16_t threshold)
-{
-  // Start with default values
-  uint16_t config = ADS1015_REG_CONFIG_CQUE_1CONV   | // Comparator enabled and asserts on 1 match
-                    ADS1015_REG_CONFIG_CLAT_LATCH   | // Latching mode
-                    ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
-                    ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
-                    ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
-                    ADS1015_REG_CONFIG_MODE_CONTIN  | // Continuous conversion mode
-                    ADS1015_REG_CONFIG_MODE_CONTIN;   // Continuous conversion mode
-
-  // Set PGA/voltage range
-  config |= m_gain;
-                    
-  // Set single-ended input channel
-  switch (channel)
-  {
-    case (0):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_0;
-      break;
-    case (1):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_1;
-      break;
-    case (2):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_2;
-      break;
-    case (3):
-      config |= ADS1015_REG_CONFIG_MUX_SINGLE_3;
-      break;
-  }
-
-  // Set the high threshold register
-  // Shift 12-bit results left 4 bits for the ADS1015
-  writeRegister(m_i2cAddress, ADS1015_REG_POINTER_HITHRESH, threshold << m_bitShift);
-
-  // Write config register to the ADC
-  writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);
-}
-
-/**************************************************************************/
-/*!
-    @brief  In order to clear the comparator, we need to read the
-            conversion results.  This function reads the last conversion
-            results without changing the config value.
-*/
-/**************************************************************************/
-int16_t Adafruit_ADS1015::getLastConversionResults()
-{
-  // Wait for the conversion to complete
-  wait_ms(m_conversionDelay);
-
-  // Read the conversion results
-  uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
-  if (m_bitShift == 0)
-  {
-    return (int16_t)res;
-  }
-  else
-  {
-    // Shift 12-bit results right 4 bits for the ADS1015,
-    // making sure we keep the sign bit intact
-    if (res > 0x07FF)
-    {
-      // negative number - extend the sign to 16th bit
-      res |= 0xF000;
-    }
-    return (int16_t)res;
-  }
-}
--- a/Adafruit_ADS1015.h	Wed May 21 13:12:24 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/**************************************************************************/
-/*!
-    @file       Adafruit_ADS1015.h
-    @author     K. Townsend (Adafruit Industries)
-    @license    BSD (see LICENSE.txt)
-    
-    Ported to mbed by Arve Seljebu - arve0.github.io
-
-    This is a library for the Adafruit ADS1015 breakout board
-    ----> https://www.adafruit.com/products/1083
-
-    Adafruit invests time and resources providing this open source code,
-    please support Adafruit and open-source hardware by purchasing
-    products from Adafruit!
-
-    @section  HISTORY
-
-    v1.0   - First release
-    v1.1   - Added ADS1115 support - W. Earl
-    v1.1.1 - Ported to mbed - Arve Seljebu
-    v1.2   - Fixed error in readADC_SingleEnded() sign bit - Sam Berjawi
-*/
-/**************************************************************************/
-
-#include <mbed.h>
-
-/*=========================================================================
-    I2C ADDRESS/BITS
-    -----------------------------------------------------------------------*/
-    #define ADS1015_ADDRESS                 (0x48)    // 1001 000 (ADDR = GND)
-/*=========================================================================*/
-
-/*=========================================================================
-    CONVERSION DELAY (in mS)
-    -----------------------------------------------------------------------*/
-    #define ADS1015_CONVERSIONDELAY         (1)
-    #define ADS1115_CONVERSIONDELAY         (8)
-/*=========================================================================*/
-
-/*=========================================================================
-    POINTER REGISTER
-    -----------------------------------------------------------------------*/
-    #define ADS1015_REG_POINTER_MASK        (0x03)
-    #define ADS1015_REG_POINTER_CONVERT     (0x00)
-    #define ADS1015_REG_POINTER_CONFIG      (0x01)
-    #define ADS1015_REG_POINTER_LOWTHRESH   (0x02)
-    #define ADS1015_REG_POINTER_HITHRESH    (0x03)
-/*=========================================================================*/
-
-/*=========================================================================
-    CONFIG REGISTER
-    -----------------------------------------------------------------------*/
-    #define ADS1015_REG_CONFIG_OS_MASK      (0x8000)
-    #define ADS1015_REG_CONFIG_OS_SINGLE    (0x8000)  // Write: Set to start a single-conversion
-    #define ADS1015_REG_CONFIG_OS_BUSY      (0x0000)  // Read: Bit = 0 when conversion is in progress
-    #define ADS1015_REG_CONFIG_OS_NOTBUSY   (0x8000)  // Read: Bit = 1 when device is not performing a conversion
-
-    #define ADS1015_REG_CONFIG_MUX_MASK     (0x7000)
-    #define ADS1015_REG_CONFIG_MUX_DIFF_0_1 (0x0000)  // Differential P = AIN0, N = AIN1 (default)
-    #define ADS1015_REG_CONFIG_MUX_DIFF_0_3 (0x1000)  // Differential P = AIN0, N = AIN3
-    #define ADS1015_REG_CONFIG_MUX_DIFF_1_3 (0x2000)  // Differential P = AIN1, N = AIN3
-    #define ADS1015_REG_CONFIG_MUX_DIFF_2_3 (0x3000)  // Differential P = AIN2, N = AIN3
-    #define ADS1015_REG_CONFIG_MUX_SINGLE_0 (0x4000)  // Single-ended AIN0
-    #define ADS1015_REG_CONFIG_MUX_SINGLE_1 (0x5000)  // Single-ended AIN1
-    #define ADS1015_REG_CONFIG_MUX_SINGLE_2 (0x6000)  // Single-ended AIN2
-    #define ADS1015_REG_CONFIG_MUX_SINGLE_3 (0x7000)  // Single-ended AIN3
-
-    #define ADS1015_REG_CONFIG_PGA_MASK     (0x0E00)
-    #define ADS1015_REG_CONFIG_PGA_6_144V   (0x0000)  // +/-6.144V range = Gain 2/3
-    #define ADS1015_REG_CONFIG_PGA_4_096V   (0x0200)  // +/-4.096V range = Gain 1
-    #define ADS1015_REG_CONFIG_PGA_2_048V   (0x0400)  // +/-2.048V range = Gain 2 (default)
-    #define ADS1015_REG_CONFIG_PGA_1_024V   (0x0600)  // +/-1.024V range = Gain 4
-    #define ADS1015_REG_CONFIG_PGA_0_512V   (0x0800)  // +/-0.512V range = Gain 8
-    #define ADS1015_REG_CONFIG_PGA_0_256V   (0x0A00)  // +/-0.256V range = Gain 16
-
-    #define ADS1015_REG_CONFIG_MODE_MASK    (0x0100)
-    #define ADS1015_REG_CONFIG_MODE_CONTIN  (0x0000)  // Continuous conversion mode
-    #define ADS1015_REG_CONFIG_MODE_SINGLE  (0x0100)  // Power-down single-shot mode (default)
-
-    #define ADS1015_REG_CONFIG_DR_MASK      (0x00E0)  
-    #define ADS1015_REG_CONFIG_DR_128SPS    (0x0000)  // 128 samples per second
-    #define ADS1015_REG_CONFIG_DR_250SPS    (0x0020)  // 250 samples per second
-    #define ADS1015_REG_CONFIG_DR_490SPS    (0x0040)  // 490 samples per second
-    #define ADS1015_REG_CONFIG_DR_920SPS    (0x0060)  // 920 samples per second
-    #define ADS1015_REG_CONFIG_DR_1600SPS   (0x0080)  // 1600 samples per second (default)
-    #define ADS1015_REG_CONFIG_DR_2400SPS   (0x00A0)  // 2400 samples per second
-    #define ADS1015_REG_CONFIG_DR_3300SPS   (0x00C0)  // 3300 samples per second
-
-    #define ADS1015_REG_CONFIG_CMODE_MASK   (0x0010)
-    #define ADS1015_REG_CONFIG_CMODE_TRAD   (0x0000)  // Traditional comparator with hysteresis (default)
-    #define ADS1015_REG_CONFIG_CMODE_WINDOW (0x0010)  // Window comparator
-
-    #define ADS1015_REG_CONFIG_CPOL_MASK    (0x0008)
-    #define ADS1015_REG_CONFIG_CPOL_ACTVLOW (0x0000)  // ALERT/RDY pin is low when active (default)
-    #define ADS1015_REG_CONFIG_CPOL_ACTVHI  (0x0008)  // ALERT/RDY pin is high when active
-
-    #define ADS1015_REG_CONFIG_CLAT_MASK    (0x0004)  // Determines if ALERT/RDY pin latches once asserted
-    #define ADS1015_REG_CONFIG_CLAT_NONLAT  (0x0000)  // Non-latching comparator (default)
-    #define ADS1015_REG_CONFIG_CLAT_LATCH   (0x0004)  // Latching comparator
-
-    #define ADS1015_REG_CONFIG_CQUE_MASK    (0x0003)
-    #define ADS1015_REG_CONFIG_CQUE_1CONV   (0x0000)  // Assert ALERT/RDY after one conversions
-    #define ADS1015_REG_CONFIG_CQUE_2CONV   (0x0001)  // Assert ALERT/RDY after two conversions
-    #define ADS1015_REG_CONFIG_CQUE_4CONV   (0x0002)  // Assert ALERT/RDY after four conversions
-    #define ADS1015_REG_CONFIG_CQUE_NONE    (0x0003)  // Disable the comparator and put ALERT/RDY in high state (default)
-/*=========================================================================*/
-
-typedef enum
-{
-  GAIN_TWOTHIRDS    = ADS1015_REG_CONFIG_PGA_6_144V,
-  GAIN_ONE          = ADS1015_REG_CONFIG_PGA_4_096V,
-  GAIN_TWO          = ADS1015_REG_CONFIG_PGA_2_048V,
-  GAIN_FOUR         = ADS1015_REG_CONFIG_PGA_1_024V,
-  GAIN_EIGHT        = ADS1015_REG_CONFIG_PGA_0_512V,
-  GAIN_SIXTEEN      = ADS1015_REG_CONFIG_PGA_0_256V
-} adsGain_t;
-
-class Adafruit_ADS1015
-{
-protected:
-   // Instance-specific properties
-   uint8_t   m_i2cAddress;
-   uint8_t   m_conversionDelay;
-   uint8_t   m_bitShift;
-   adsGain_t m_gain;
-   I2C*      m_i2c;
-   
-
- public:
-  Adafruit_ADS1015(I2C* i2c = 0, uint8_t i2cAddress = ADS1015_ADDRESS); // set i2c adress = 0 to allow ADS1115 to use this as default constructor
-  uint16_t  readADC_SingleEnded(uint8_t channel);
-  int16_t   readADC_Differential_0_1(void);
-  int16_t   readADC_Differential_2_3(void);
-  void      startComparator_SingleEnded(uint8_t channel, int16_t threshold);
-  int16_t   getLastConversionResults();
-  void      setGain(adsGain_t gain);
-  adsGain_t getGain(void);
-
- private:
-  uint16_t readRegister(uint8_t i2cAddress, uint8_t reg);
-  void writeRegister(uint8_t i2cAddress, uint8_t reg, uint16_t value);
-};
-
-// Derive from ADS1105 & override construction to set properties
-class Adafruit_ADS1115 : public Adafruit_ADS1015
-{
- public:
-  Adafruit_ADS1115(I2C* i2c, uint8_t i2cAddress = ADS1015_ADDRESS);
-
- private:
-};
\ No newline at end of file