0.4.0 ADS1x15

This commit is contained in:
Rob Tillaart 2023-12-06 17:03:16 +01:00
parent 7f909c9f2f
commit b32f817808
29 changed files with 280 additions and 248 deletions

View File

@ -1,7 +1,7 @@
// //
// FILE: ADS1X15.cpp // FILE: ADS1X15.cpp
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// VERSION: 0.3.13 // VERSION: 0.4.0
// DATE: 2013-03-24 // DATE: 2013-03-24
// PUPROSE: Arduino library for ADS1015 and ADS1115 // PUPROSE: Arduino library for ADS1015 and ADS1115
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
@ -140,33 +140,8 @@ void ADS1X15::reset()
} }
#if defined (ESP8266) || defined(ESP32)
bool ADS1X15::begin(int sda, int scl)
{
_wire->begin(sda, scl);
if ((_address < 0x48) || (_address > 0x4B)) return false;
if (! isConnected()) return false;
return true;
}
#elif defined (ARDUINO_ARCH_RP2040) && !defined(__MBED__)
bool ADS1X15::begin(int sda, int scl)
{
_wire->setSDA(sda);
_wire->setSCL(scl);
_wire->begin();
if ((_address < 0x48) || (_address > 0x4B)) return false;
if (! isConnected()) return false;
return true;
}
#endif
bool ADS1X15::begin() bool ADS1X15::begin()
{ {
_wire->begin();
if ((_address < 0x48) || (_address > 0x4B)) return false; if ((_address < 0x48) || (_address > 0x4B)) return false;
if (! isConnected()) return false; if (! isConnected()) return false;
return true; return true;

View File

@ -2,7 +2,7 @@
// //
// FILE: ADS1X15.h // FILE: ADS1X15.h
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// VERSION: 0.3.13 // VERSION: 0.4.0
// DATE: 2013-03-24 // DATE: 2013-03-24
// PUPROSE: Arduino library for ADS1015 and ADS1115 // PUPROSE: Arduino library for ADS1015 and ADS1115
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
@ -12,7 +12,7 @@
#include "Arduino.h" #include "Arduino.h"
#include "Wire.h" #include "Wire.h"
#define ADS1X15_LIB_VERSION (F("0.3.13")) #define ADS1X15_LIB_VERSION (F("0.4.0"))
// allow compile time default address // allow compile time default address
// address in { 0x48, 0x49, 0x4A, 0x4B }, no test... // address in { 0x48, 0x49, 0x4A, 0x4B }, no test...
@ -36,12 +36,6 @@ class ADS1X15
public: public:
void reset(); void reset();
#if defined (ESP8266) || defined(ESP32)
bool begin(int sda, int scl);
#elif defined (ARDUINO_ARCH_RP2040) && !defined(__MBED__)
bool begin(int sda, int scl);
#endif
bool begin(); bool begin();
bool isConnected(); bool isConnected();

View File

@ -5,17 +5,22 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/). and this project adheres to [Semantic Versioning](http://semver.org/).
## [0.4.0] - 2023-12-06
- refactor API, begin()
- update readme.md
- update examples
----
## [0.3.13] - 2023-09-20 ## [0.3.13] - 2023-09-20
- fix #61 ESP32 begin() - fix #61 ESP32 begin()
## [0.3.12] - 2023-09-11 ## [0.3.12] - 2023-09-11
- update and add examples - update and add examples
- add **getLastRequest()** to track last type of measurement. - add **getLastRequest()** to track last type of measurement.
- update readme.md - update readme.md
- minor edits. - minor edits.
## [0.3.11] - 2023-08-31 ## [0.3.11] - 2023-08-31
- update readme.md - update readme.md
- move code from .h to .cpp - move code from .h to .cpp

View File

@ -37,6 +37,15 @@ interesting from functionality point of view as these can also do
differential measurements. differential measurements.
#### 0.4.0 Breaking change
Version 0.4.0 introduced a breaking change.
You cannot set the pins in **begin()** any more.
This reduces the dependency of processor dependent Wire implementations.
The user has to call **Wire.begin()** and can optionally set the Wire pins
before calling **begin()**.
#### Related #### Related
- https://github.com/RobTillaart/MCP_ADC (10 & 12 bit ADC, SPI, fast) - https://github.com/RobTillaart/MCP_ADC (10 & 12 bit ADC, SPI, fast)
@ -419,6 +428,9 @@ Set the number of conversions before trigger activates.
The **void setComparatorQueConvert(uint8_t mode)** is used to set the number of The **void setComparatorQueConvert(uint8_t mode)** is used to set the number of
conversions that exceed the threshold before the **ALERT/RDY** pin is set **HIGH**. conversions that exceed the threshold before the **ALERT/RDY** pin is set **HIGH**.
A value of 3 (or above) effectively disables the comparator. See table below. A value of 3 (or above) effectively disables the comparator. See table below.
To enable the conversion-ready function of the ALERT/RDY pin, it is necessary to set the MSB of the Hi_thresh register to 1 and the MSB of the Lo_thresh register to 0.
See [examples](https://github.com/RobTillaart/ADS1X15/blob/master/examples/ADS_continuous_differential/ADS_continuous_differential.ino).
- **void setComparatorQueConvert(uint8_t mode)** See table below. - **void setComparatorQueConvert(uint8_t mode)** See table below.
- **uint8_t getComparatorQueConvert()** returns value set. - **uint8_t getComparatorQueConvert()** returns value set.
@ -442,27 +454,14 @@ mean something different see - Comparator Mode above or datasheet.
- **int16_t getComparatorThresholdHigh()** reads value from device. - **int16_t getComparatorThresholdHigh()** reads value from device.
## RP2040 specific
- **bool begin(int sda, int scl)** begin communication with the ADC.
It has the parameter for selecting on which pins the communication should happen.
Check RP2040 Pinout for compatible pins.
If, "Wire1" is used, you need to add "&Wire1" in the constructor.
## Future ideas & improvements ## Future ideas & improvements
#### Must #### Must
- Improve documentation (always) - Improve documentation (always)
#### Should #### Should
- investigate of remove the begin(sda, scl) versions
as the responsibility for the Wire configuration
should not be in this library.
#### Could #### Could

View File

@ -27,6 +27,8 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
for (uint8_t i = 0; i < 4; i++) for (uint8_t i = 0; i < 4; i++)
{ {
uint8_t address = 0x48 + i; uint8_t address = 0x48 + i;
@ -36,7 +38,8 @@ void setup()
Serial.print(" "); Serial.print(" ");
Serial.println(ADS[i].begin() ? "connected" : "not connected"); Serial.println(ADS[i].begin() ? "connected" : "not connected");
ADS[i].setDataRate(4); // 0 = slow 4 = medium 7 = fast, but more noise // 0 = slow 4 = medium 7 = fast, but more noise
ADS[i].setDataRate(4);
} }
ADS_request_all(); ADS_request_all();
} }
@ -44,14 +47,14 @@ void setup()
void loop() void loop()
{ {
// Serial.println(__FUNCTION__); // Serial.println(__FUNCTION__);
// wait until all is read... // wait until all is read...
while(ADS_read_all()); while(ADS_read_all());
// we have all values, so process (print) them // we have all values, so process (print) them
ADS_print_all(); ADS_print_all();
delay(1000); // wait a second, comment this line for more samples. delay(1000); // wait a second, comment this line for more samples.
ADS_request_all(); ADS_request_all();
} }
@ -107,4 +110,4 @@ void ADS_print_all()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -27,18 +27,19 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
// SETUP FIRST ADS1114 // SETUP FIRST ADS1114
ADS_1.begin(); ADS_1.begin();
ADS_1.setGain(0); // 0 == 6.144 volt, default ADS_1.setGain(0); // 0 == 6.144 volt, default
ADS_1.setDataRate(7); // 0 = slow 4 = medium 7 = fast ADS_1.setDataRate(7); // 0 = slow 4 = medium 7 = fast
// SET ALERT RDY PIN // SET ALERT RDY PIN
ADS_1.setComparatorThresholdHigh(0x8000); ADS_1.setComparatorThresholdHigh(0x8000);
ADS_1.setComparatorThresholdLow(0x0000); ADS_1.setComparatorThresholdLow(0x0000);
ADS_1.setComparatorQueConvert(0); ADS_1.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(2, INPUT_PULLUP); pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), adsReady_1, RISING); attachInterrupt(digitalPinToInterrupt(2), adsReady_1, RISING);
@ -46,17 +47,17 @@ void setup()
ADS_1.readADC(); // 0 == default channel, trigger first read ADS_1.readADC(); // 0 == default channel, trigger first read
// SETUP SECOND ADS1114 // SETUP SECOND ADS1114
ADS_2.begin(); ADS_2.begin();
ADS_2.setGain(0); // 0 == 6.144 volt, default ADS_2.setGain(0); // 0 == 6.144 volt, default
ADS_2.setDataRate(7); // 7 == highest ADS_2.setDataRate(7); // 7 == highest
// SET ALERT RDY PIN // SET ALERT RDY PIN
ADS_2.setComparatorThresholdHigh(0x8000); ADS_2.setComparatorThresholdHigh(0x8000);
ADS_2.setComparatorThresholdLow(0x0000); ADS_2.setComparatorThresholdLow(0x0000);
ADS_2.setComparatorQueConvert(0); ADS_2.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(3, INPUT_PULLUP); pinMode(3, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(3), adsReady_2, RISING); attachInterrupt(digitalPinToInterrupt(3), adsReady_2, RISING);
@ -78,26 +79,26 @@ void loop()
} }
// catch interrupt and set flag device 1 // catch interrupt and set flag device 1
void adsReady_1() void adsReady_1()
{ {
RDY_1 = true; RDY_1 = true;
} }
// catch interrupt and set flag device 1 // catch interrupt and set flag device 1
void adsReady_2() void adsReady_2()
{ {
RDY_2 = true; RDY_2 = true;
} }
// handle conversions that are ready // handle conversions that are ready
bool handleConversion() bool handleConversion()
{ {
bool rv = false; bool rv = false;
if (RDY_1) if (RDY_1)
{ {
// save the last value // save the last value
val_1 = ADS_1.getValue(); val_1 = ADS_1.getValue();
ADS_1.readADC(0); ADS_1.readADC(0);
RDY_1 = false; RDY_1 = false;
@ -105,7 +106,7 @@ bool handleConversion()
} }
if (RDY_2) if (RDY_2)
{ {
// save the last value // save the last value
val_2 = ADS_2.getValue(); val_2 = ADS_2.getValue();
ADS_2.readADC(0); ADS_2.readADC(0);
RDY_2 = false; RDY_2 = false;
@ -115,5 +116,5 @@ bool handleConversion()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -4,13 +4,13 @@
// PURPOSE: read analog input // PURPOSE: read analog input
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
// test // test
// connect 1 potmeter // connect 1 potentiometer
// //
// GND ---[ x ]------ 5V // GND ---[ x ]------ 5V
// | // |
// //
// measure at x (connect to AIN0). // measure at x (connect to AIN0).
#include "ADS1X15.h" #include "ADS1X15.h"
@ -32,19 +32,24 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
ADS.begin(26, 27); // SDA (Pin 26), SCL(Pin 27) // SDA (Pin 26), SCL(Pin 27)
ADS.setGain(0); // 6.144 volt Wire1.begin();
ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast Wire1.setSDA(26);
ADS.setMode(0); // continuous mode Wire1.setSCL(27);
ADS.readADC(0); // first read to trigger
ADS.begin();
ADS.setGain(0); // 6.144 volt
ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast
ADS.setMode(0); // continuous mode
ADS.readADC(0); // first read to trigger
} }
void loop() void loop()
{ {
Serial.println(ADS.getValue()); Serial.println(ADS.getValue());
// optional other code here // optional other code here
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -1,9 +1,7 @@
// //
// FILE: ADS_async_16_channel.ino // FILE: ADS_async_16_channel.ino
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// VERSION: 0.1.0
// PURPOSE: demo reading four ADS1115 modules in parallel // PURPOSE: demo reading four ADS1115 modules in parallel
// DATE: 2021-07-06
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
@ -30,6 +28,8 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
for (uint8_t i = 0; i < 4; i++) for (uint8_t i = 0; i < 4; i++)
{ {
uint8_t address = 0x48 + i; uint8_t address = 0x48 + i;
@ -39,7 +39,8 @@ void setup()
Serial.print(" "); Serial.print(" ");
Serial.println(ADS[i].begin() ? "connected" : "not connected"); Serial.println(ADS[i].begin() ? "connected" : "not connected");
ADS[i].setDataRate(4); // 0 = slow 4 = medium 7 = fast, but more noise // 0 = slow 4 = medium 7 = fast, but more noise
ADS[i].setDataRate(4);
} }
ADS_request_all(); ADS_request_all();
} }
@ -47,14 +48,14 @@ void setup()
void loop() void loop()
{ {
// Serial.println(__FUNCTION__); // Serial.println(__FUNCTION__);
// wait until all is read... // wait until all is read...
while (ADS_read_all()); while (ADS_read_all());
// we have all values // we have all values
ADS_print_all(); ADS_print_all();
delay(1000); // wait a second. delay(1000); // wait a second.
ADS_request_all(); ADS_request_all();
} }
@ -75,8 +76,8 @@ bool ADS_read_all()
{ {
if (ADS[i].isConnected() && ADS[i].isBusy()) return true; if (ADS[i].isConnected() && ADS[i].isBusy()) return true;
} }
// Serial.print("IDX:\t"); // Serial.print("IDX:\t");
// Serial.println(idx); // Serial.println(idx);
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
if (ADS[i].isConnected()) if (ADS[i].isConnected())
@ -97,14 +98,14 @@ bool ADS_read_all()
void ADS_print_all() void ADS_print_all()
{ {
// Serial.println(__FUNCTION__); // Serial.println(__FUNCTION__);
// TIMESTAMP // TIMESTAMP
now = millis(); now = millis();
Serial.print(now - last); Serial.print(now - last);
last = now; last = now;
Serial.println(); Serial.println();
// PRINT ALL VALUES // PRINT ALL VALUES
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
for (int j = 0; j < 4; j++) for (int j = 0; j < 4; j++)
@ -118,5 +119,5 @@ void ADS_print_all()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -2,7 +2,6 @@
// FILE: ADS_async_8_channel.ino // FILE: ADS_async_8_channel.ino
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// PURPOSE: demo reading two ADS1115 modules in parallel // PURPOSE: demo reading two ADS1115 modules in parallel
// DATE: 2021-07-05
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
@ -36,6 +35,8 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS0.begin(); ADS0.begin();
ADS1.begin(); ADS1.begin();
// ADS2.begin(); // ADS2.begin();
@ -46,7 +47,8 @@ void setup()
// Serial.println(ADS2.isConnected()); // Serial.println(ADS2.isConnected());
// Serial.println(ADS3.isConnected()); // Serial.println(ADS3.isConnected());
ADS0.setDataRate(4); // 0 = slow 4 = medium 7 = fast but more noise // 0 = slow 4 = medium 7 = fast but more noise
ADS0.setDataRate(4);
ADS1.setDataRate(4); ADS1.setDataRate(4);
// ADS2.setDataRate(4); // ADS2.setDataRate(4);
// ADS3.setDataRate(4); // ADS3.setDataRate(4);
@ -58,13 +60,14 @@ void setup()
void loop() void loop()
{ {
// wait until all is read... // wait until all is read...
while (ADS_read_all()); while (ADS_read_all());
// we have all 8 values // we have all 8 values
ADS_print_all(); ADS_print_all();
delay(1000); // wait a second. // wait a second.
delay(1000);
ADS_request_all(); ADS_request_all();
} }
@ -106,13 +109,13 @@ void ADS_print_all()
Serial.println(now - lastTime); Serial.println(now - lastTime);
lastTime = now; lastTime = now;
// PRINT ALL VALUES OF ADC0 // PRINT ALL VALUES OF ADC0
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
Serial.print(val0[i]); Serial.print(val0[i]);
Serial.print("\t"); Serial.print("\t");
} }
// PRINT ALL VALUES OF ADC1 // PRINT ALL VALUES OF ADC1
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
{ {
Serial.print(val1[i]); Serial.print(val1[i]);
@ -135,5 +138,5 @@ void ADS_print_all()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -1,7 +1,6 @@
// //
// FILE: ADS_async_differential.ino // FILE: ADS_async_differential.ino
// AUTHOR: Rob.Tillaart // AUTHOR: Rob.Tillaart
// VERSION: 0.1.0
// PURPOSE: read multiple differential continuously // PURPOSE: read multiple differential continuously
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
@ -40,15 +39,17 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
ADS.setDataRate(4); // 0 = slow 4 = medium 7 = fast ADS.setDataRate(4); // 0 = slow 4 = medium 7 = fast
// single shot mode // single shot mode
ADS.setMode(1); ADS.setMode(1);
// start with first pair // start with first pair
pair = 01; pair = 01;
// trigger first read // trigger first read
ADS.requestADC_Differential_0_1(); ADS.requestADC_Differential_0_1();
} }
@ -69,7 +70,7 @@ void loop()
} }
// can be changed to hold other differentials reads too. // can be changed to hold other differentials reads too.
bool handleConversion() bool handleConversion()
{ {
if (ADS.isReady()) if (ADS.isReady())
@ -82,18 +83,18 @@ bool handleConversion()
return false; // only one done return false; // only one done
} }
// last of series to check // last of series to check
if (pair == 23) if (pair == 23)
{ {
val_23 = ADS.getValue(); val_23 = ADS.getValue();
pair = 01; pair = 01;
ADS.requestADC_Differential_0_1(); ADS.requestADC_Differential_0_1();
return true; // both are updated return true; // both are updated
} }
} }
return false; // default not all read return false; // default not all read
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -40,6 +40,8 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast

View File

@ -52,18 +52,19 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
Wire.setClock(400000); Wire.setClock(400000);
ADS.begin(); ADS.begin();
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast
// SET ALERT RDY PIN // SET ALERT RDY PIN
ADS.setComparatorThresholdHigh(0x8000); ADS.setComparatorThresholdHigh(0x8000);
ADS.setComparatorThresholdLow(0x0000); ADS.setComparatorThresholdLow(0x0000);
ADS.setComparatorQueConvert(0); ADS.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(2, INPUT_PULLUP); pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING); attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING);
@ -81,7 +82,7 @@ void loop()
{ {
SPS++; SPS++;
val[channel] = ADS.getValue(); val[channel] = ADS.getValue();
// request next channel asap // request next channel asap
channel++; channel++;
if (channel >= 3) channel = 0; if (channel >= 3) channel = 0;
ADS.requestADC(channel); ADS.requestADC(channel);

View File

@ -41,24 +41,26 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
pinMode(2, INPUT_PULLUP); pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING); attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING);
ADS.begin(); ADS.begin();
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast
// SET ALERT RDY PIN // SET ALERT RDY PIN
ADS.setComparatorThresholdHigh(0x8000); ADS.setComparatorThresholdHigh(0x8000);
ADS.setComparatorThresholdLow(0x0000); ADS.setComparatorThresholdLow(0x0000);
ADS.setComparatorQueConvert(0); ADS.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(2, INPUT_PULLUP); pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING); attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING);
ADS.setMode(0); // continuous mode ADS.setMode(0); // continuous mode
ADS.readADC(channel); // trigger first read ADS.readADC(channel); // trigger first read
} }
@ -89,9 +91,9 @@ void handleConversion()
{ {
if (RDY) if (RDY)
{ {
// save the value // save the value
val[channel] = ADS.getValue(); val[channel] = ADS.getValue();
// request next channel // request next channel
channel++; channel++;
if (channel >= 4) channel = 0; if (channel >= 4) channel = 0;
ADS.readADC(channel); ADS.readADC(channel);
@ -100,5 +102,5 @@ void handleConversion()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -21,7 +21,7 @@
#include "ADS1X15.h" #include "ADS1X15.h"
// adjust addresses if needed // adjust addresses if needed
ADS1115 ADS_1(0x49); ADS1115 ADS_1(0x49);
ADS1115 ADS_2(0x48); ADS1115 ADS_2(0x48);
@ -29,8 +29,8 @@ ADS1115 ADS_2(0x48);
volatile bool RDY_1 = false; volatile bool RDY_1 = false;
volatile bool RDY_2 = false; volatile bool RDY_2 = false;
uint8_t channel_1 = 0; // channel from device 1 uint8_t channel_1 = 0; // channel from device 1
uint8_t channel_2 = 0; // channel from device 2 uint8_t channel_2 = 0; // channel from device 2
// array to hold the data. // array to hold the data.
int16_t val[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; int16_t val[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
@ -43,40 +43,42 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
// SETUP FIRST ADS1115 Wire.begin();
ADS_1.begin();
ADS_1.setGain(0); // 6.144 volt
ADS_1.setDataRate(7); // 0 = slow 4 = medium 7 = fast
// SET ALERT RDY PIN // SETUP FIRST ADS1115
ADS_1.begin();
ADS_1.setGain(0); // 6.144 volt
ADS_1.setDataRate(7); // 0 = slow 4 = medium 7 = fast
// SET ALERT RDY PIN
ADS_1.setComparatorThresholdHigh(0x8000); ADS_1.setComparatorThresholdHigh(0x8000);
ADS_1.setComparatorThresholdLow(0x0000); ADS_1.setComparatorThresholdLow(0x0000);
ADS_1.setComparatorQueConvert(0); ADS_1.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(2, INPUT_PULLUP); pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), adsReady_1, RISING); attachInterrupt(digitalPinToInterrupt(2), adsReady_1, RISING);
ADS_1.setMode(0); // continuous mode ADS_1.setMode(0); // continuous mode
ADS_1.readADC(channel_1); // trigger first read ADS_1.readADC(channel_1); // trigger first read
// SETUP SECOND ADS1115 // SETUP SECOND ADS1115
ADS_2.begin(); ADS_2.begin();
ADS_2.setGain(0); // 6.144 volt ADS_2.setGain(0); // 6.144 volt
ADS_2.setDataRate(7); ADS_2.setDataRate(7);
// SET ALERT RDY PIN // SET ALERT RDY PIN
ADS_2.setComparatorThresholdHigh(0x8000); ADS_2.setComparatorThresholdHigh(0x8000);
ADS_2.setComparatorThresholdLow(0x0000); ADS_2.setComparatorThresholdLow(0x0000);
ADS_2.setComparatorQueConvert(0); ADS_2.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(3, INPUT_PULLUP); pinMode(3, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(3), adsReady_2, RISING); attachInterrupt(digitalPinToInterrupt(3), adsReady_2, RISING);
ADS_2.setMode(0); // continuous mode ADS_2.setMode(0); // continuous mode
ADS_2.readADC(channel_2); // trigger first read ADS_2.readADC(channel_2); // trigger first read
} }
@ -95,28 +97,28 @@ void loop()
} }
// catch interrupt and set flag device 1 // catch interrupt and set flag device 1
void adsReady_1() void adsReady_1()
{ {
RDY_1 = true; RDY_1 = true;
} }
// catch interrupt and set flag device 1 // catch interrupt and set flag device 1
void adsReady_2() void adsReady_2()
{ {
RDY_2 = true; RDY_2 = true;
} }
// handle conversions that are ready // handle conversions that are ready
bool handleConversion() bool handleConversion()
{ {
bool rv = false; bool rv = false;
if (RDY_1) if (RDY_1)
{ {
// save the last value // save the last value
val[channel_1] = ADS_1.getValue(); val[channel_1] = ADS_1.getValue();
// request next channel // request next channel
channel_1++; channel_1++;
if (channel_1 >= 4) channel_1 = 0; if (channel_1 >= 4) channel_1 = 0;
ADS_1.readADC(channel_1); ADS_1.readADC(channel_1);
@ -125,9 +127,9 @@ bool handleConversion()
} }
if (RDY_2) if (RDY_2)
{ {
// save the last value // save the last value
val[4 + channel_2] = ADS_2.getValue(); val[4 + channel_2] = ADS_2.getValue();
// request next channel // request next channel
channel_2++; channel_2++;
if (channel_2 >= 4) channel_2 = 0; if (channel_2 >= 4) channel_2 = 0;
ADS_2.readADC(channel_2); ADS_2.readADC(channel_2);
@ -138,5 +140,5 @@ bool handleConversion()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -28,11 +28,11 @@
ADS1115 ADS(0x48); ADS1115 ADS(0x48);
// interrupt flag // interrupt flag
volatile bool RDY = false; volatile bool RDY = false;
// which pair to use for differential // which pair to use for differential
uint8_t pair = 01; uint8_t pair = 01;
// two values to hold differential measurements. // two values to hold differential measurements.
int16_t val_01 = 0; int16_t val_01 = 0;
int16_t val_23 = 0; int16_t val_23 = 0;
@ -44,27 +44,31 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY Wire.begin();
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(2, INPUT_PULLUP); pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING); attachInterrupt(digitalPinToInterrupt(2), adsReady, RISING);
ADS.begin(); ADS.begin();
Serial.print("connected: "); Serial.print("connected: ");
Serial.println(ADS.isConnected()); Serial.println(ADS.isConnected());
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
ADS.setDataRate(0); // 0 = slow 4 = medium 7 = fast (7 = fails ) ADS.setDataRate(0); // 0 = slow 4 = medium 7 = fast (7 = fails )
// every step is about a factor 2 slower. // every step is about a factor 2 slower.
// SET ALERT RDY PIN // SET ALERT RDY PIN (QueConvert mode)
// set the MSB of the Hi_thresh register to 1
ADS.setComparatorThresholdHigh(0x8000); ADS.setComparatorThresholdHigh(0x8000);
// set the MSB of the Lo_thresh register to 0
ADS.setComparatorThresholdLow(0x0000); ADS.setComparatorThresholdLow(0x0000);
ADS.setComparatorQueConvert(0); ADS.setComparatorQueConvert(0);
// continuous mode // continuous mode
ADS.setMode(0); ADS.setMode(0);
// start with first pair // start with first pair
pair = 01; pair = 01;
// trigger first read // trigger first read
ADS.requestADC_Differential_0_1(); ADS.requestADC_Differential_0_1();
} }
@ -84,19 +88,19 @@ void loop()
Serial.println(); Serial.println();
} }
// do other stuff here // do other stuff here
// delay(10); // delay(10);
} }
// interrupt handler, sets the RDY flag // interrupt handler, sets the RDY flag
void adsReady() void adsReady()
{ {
RDY = true; RDY = true;
} }
// can be changed to hold other differentials or normal reads too. // can be changed to hold other differentials or normal reads too.
bool handleConversion() bool handleConversion()
{ {
if (RDY) if (RDY)
@ -107,21 +111,21 @@ bool handleConversion()
val_01 = ADS.getValue(); val_01 = ADS.getValue();
pair = 23; pair = 23;
ADS.requestADC_Differential_2_3(); ADS.requestADC_Differential_2_3();
return false; // only one done return false; // only one done
} }
// last of series to check // last of series to check
if (pair == 23) if (pair == 23)
{ {
val_23 = ADS.getValue(); val_23 = ADS.getValue();
pair = 01; pair = 01;
ADS.requestADC_Differential_0_1(); ADS.requestADC_Differential_0_1();
return true; // both are updated return true; // both are updated
} }
} }
return false; // default not all read return false; // default not all read
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -38,6 +38,8 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
ADS.setGain(0); ADS.setGain(0);
} }
@ -64,5 +66,5 @@ void loop()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -17,7 +17,7 @@
#include "ADS1X15.h" #include "ADS1X15.h"
// adjust addresses if needed // adjust addresses if needed
ADS1115 ADS_1(0x49); ADS1115 ADS_1(0x49);
ADS1115 ADS_2(0x48); ADS1115 ADS_2(0x48);
@ -34,39 +34,45 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
// SETUP FIRST ADS1115 Wire.begin();
ADS_1.begin();
ADS_1.setGain(0); // 6.144 volt
ADS_1.setDataRate(7); // 0 = slow 4 = medium 7 = fast
// SET ALERT RDY PIN // SETUP FIRST ADS1115
ADS_1.begin();
ADS_1.setGain(0); // 6.144 volt
ADS_1.setDataRate(7); // 0 = slow 4 = medium 7 = fast
// SET ALERT RDY PIN (QueConvert mode)
// set the MSB of the Hi_thresh register to 1
ADS_1.setComparatorThresholdHigh(0x8000); ADS_1.setComparatorThresholdHigh(0x8000);
// set the MSB of the Lo_thresh register to 0
ADS_1.setComparatorThresholdLow(0x0000); ADS_1.setComparatorThresholdLow(0x0000);
ADS_1.setComparatorQueConvert(0); ADS_1.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(2, INPUT_PULLUP); pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), adsReady_1, RISING); attachInterrupt(digitalPinToInterrupt(2), adsReady_1, RISING);
ADS_1.setMode(0); // continuous mode ADS_1.setMode(0); // continuous mode
ADS_1.readADC(channel); // trigger first read ADS_1.readADC(channel); // trigger first read
// SETUP SECOND ADS1115 // SETUP SECOND ADS1115
ADS_2.begin(); ADS_2.begin();
ADS_2.setGain(0); // 6.144 volt ADS_2.setGain(0); // 6.144 volt
ADS_2.setDataRate(7); ADS_2.setDataRate(7);
// SET ALERT RDY PIN // SET ALERT RDY PIN
// set the MSB of the Hi_thresh register to 1
ADS_2.setComparatorThresholdHigh(0x8000); ADS_2.setComparatorThresholdHigh(0x8000);
// set the MSB of the Lo_thresh register to 0
ADS_2.setComparatorThresholdLow(0x0000); ADS_2.setComparatorThresholdLow(0x0000);
ADS_2.setComparatorQueConvert(0); ADS_2.setComparatorQueConvert(0);
// SET INTERRUPT HANDLER TO CATCH CONVERSION READY // SET INTERRUPT HANDLER TO CATCH CONVERSION READY
pinMode(3, INPUT_PULLUP); pinMode(3, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(3), adsReady_2, RISING); attachInterrupt(digitalPinToInterrupt(3), adsReady_2, RISING);
ADS_2.setMode(0); // continuous mode ADS_2.setMode(0); // continuous mode
ADS_2.readADC(channel); // trigger first read ADS_2.readADC(channel); // trigger first read
} }
@ -85,7 +91,7 @@ void loop()
} }
// catch interrupt and set flag // catch interrupt and set flag
void adsReady_1() void adsReady_1()
{ {
RDY_1 = true; RDY_1 = true;
@ -97,7 +103,7 @@ void adsReady_2()
} }
// handle conversions if both are ready // handle conversions if both are ready
bool handleConversion() bool handleConversion()
{ {
if (RDY_1 == false) return false; if (RDY_1 == false) return false;
@ -119,5 +125,5 @@ bool handleConversion()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -35,6 +35,8 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
Serial.println("Voltage"); Serial.println("Voltage");
@ -48,5 +50,5 @@ void loop()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -38,10 +38,10 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
ADS.begin(); Wire.begin();
Wire.setClock(100000); Wire.setClock(100000);
ADS.begin();
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
for (int dr = 0; dr < 8; dr++) for (int dr = 0; dr < 8; dr++)

View File

@ -23,6 +23,9 @@ void setup()
while(!Serial); while(!Serial);
Serial.println(__FILE__); Serial.println(__FILE__);
Wire.begin();
Wire.setClock(100000);
ADS.begin(); // use defaults ADS.begin(); // use defaults
readADC = analogRead; // start with internal readADC = analogRead; // start with internal
@ -45,4 +48,4 @@ int wrapper(uint8_t x)
// -- END OF FILE -- // -- END OF FILE --

View File

@ -26,6 +26,7 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
} }
@ -51,5 +52,5 @@ void loop()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -4,18 +4,18 @@
// PURPOSE: read analog inputs - straightforward. // PURPOSE: read analog inputs - straightforward.
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
// test // test
// connect 1 potmeter per port. // connect 1 potentiometer per port.
// //
// GND ---[ x ]------ 5V // GND ---[ x ]------ 5V
// | // |
// //
// measure at x (connect to AIN0). // measure at x (connect to AIN0).
// //
// EXPERIMENTAL // EXPERIMENTAL
// //
// The RDY pin (or ALERT Pin) is triggered when conversion is ready // The RDY pin (or ALERT Pin) is triggered when conversion is ready
// //
@ -31,16 +31,18 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
ADS.begin(); Wire.begin();
ADS.setGain(0); // 6.144 volt
ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast
ADS.setMode(1); // continuous mode
ADS.readADC(0); // first read to trigger
// set the thresholds to Trigger RDY pin ADS.begin();
ADS.setGain(0); // 6.144 volt
ADS.setDataRate(7); // 0 = slow 4 = medium 7 = fast
ADS.setMode(1); // continuous mode
ADS.readADC(0); // first read to trigger
// set the thresholds to Trigger RDY pin
ADS.setComparatorThresholdLow(0x0000); ADS.setComparatorThresholdLow(0x0000);
ADS.setComparatorThresholdHigh(0x0200); ADS.setComparatorThresholdHigh(0x0200);
ADS.setComparatorQueConvert(0); // enable RDY pin !! ADS.setComparatorQueConvert(0); // enable RDY pin !!
ADS.setComparatorLatch(0); ADS.setComparatorLatch(0);
} }
@ -51,7 +53,7 @@ void loop()
int16_t val_0 = ADS.readADC(0); int16_t val_0 = ADS.readADC(0);
float f = ADS.toVoltage(1); // voltage factor float f = ADS.toVoltage(1); // voltage factor
Serial.print("\tAnalog0: "); Serial.print("\tAnalog0: ");
Serial.print(val_0); Serial.print(val_0);
@ -62,5 +64,5 @@ void loop()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -27,9 +27,11 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
ADS.setGain(0); ADS.setGain(0);
f = ADS.toVoltage(); // voltage factor f = ADS.toVoltage(); // voltage factor
ADS.requestADC(0); ADS.requestADC(0);
} }
@ -39,16 +41,17 @@ void loop()
if (ADS.isBusy() == false) if (ADS.isBusy() == false)
{ {
int16_t val_0 = ADS.getValue(); int16_t val_0 = ADS.getValue();
ADS.requestADC(0); // request a new one // request a new one
ADS.requestADC(0);
Serial.print("\tAnalog0: "); Serial.print("\tAnalog0: ");
Serial.print(val_0); Serial.print(val_0);
Serial.print('\t'); Serial.print('\t');
Serial.println(val_0 * f, 3); Serial.println(val_0 * f, 3);
} }
// simulate other tasks... // simulate other tasks...
delay(2000); delay(2000);
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -32,17 +32,20 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
ADS.setGain(0); // 6.144 volt ADS.setGain(0); // 6.144 volt
// select slow so the led blinks visible for the eye.
ADS.setDataRate(0); // 0 = slow 4 = medium 7 = fast // select slow so the led blinks visible for the eye.
f = ADS.toVoltage(); // voltage factor ADS.setDataRate(0); // 0 = slow 4 = medium 7 = fast
f = ADS.toVoltage(); // voltage factor
ADS.requestADC(0); ADS.requestADC(0);
// set the thresholds to Trigger RDY pin // set the thresholds to Trigger RDY pin
ADS.setComparatorThresholdLow(0x0000); ADS.setComparatorThresholdLow(0x0000);
ADS.setComparatorThresholdHigh(0x0200); ADS.setComparatorThresholdHigh(0x0200);
ADS.setComparatorQueConvert(0); // enable RDY pin !! ADS.setComparatorQueConvert(0); // enable RDY pin !!
ADS.setComparatorLatch(0); ADS.setComparatorLatch(0);
} }
@ -52,16 +55,17 @@ void loop()
if (ADS.isReady()) if (ADS.isReady())
{ {
int16_t val_0 = ADS.getValue(); int16_t val_0 = ADS.getValue();
ADS.requestADC(0); // request a new one // request a new one
ADS.requestADC(0);
Serial.print("\tAnalog0: "); Serial.print("\tAnalog0: ");
Serial.print(val_0); Serial.print(val_0);
Serial.print('\t'); Serial.print('\t');
Serial.println(val_0 * f, 3); Serial.println(val_0 * f, 3);
} }
// simulate other tasks... // simulate other tasks...
delay(2000); delay(2000);
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -32,26 +32,28 @@ void setup()
Serial.print("ADS1X15_LIB_VERSION: "); Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION); Serial.println(ADS1X15_LIB_VERSION);
Wire.begin();
ADS.begin(); ADS.begin();
// change if needed. // change if needed.
ADS.setComparatorMode(1); // 0 = TRADITIONAL 1 = WINDOW ADS.setComparatorMode(1); // 0 = TRADITIONAL 1 = WINDOW
ADS.setComparatorPolarity(0); // 0 = LOW (default) 1 = HIGH ADS.setComparatorPolarity(0); // 0 = LOW (default) 1 = HIGH
// note NON-LATCH gives only a short pulse // note NON-LATCH gives only a short pulse
ADS.setComparatorLatch(1); // 0 = NON LATCH 1 = LATCH ADS.setComparatorLatch(1); // 0 = NON LATCH 1 = LATCH
ADS.setComparatorQueConvert(0); // 0 = trigger alert after 1 conversion ADS.setComparatorQueConvert(0); // 0 = trigger alert after 1 conversion
// set the thresholds as a number... // set the thresholds as a number...
// ADS.setComparatorThresholdLow(5000); // change if needed // ADS.setComparatorThresholdLow(5000); // change if needed
// ADS.setComparatorThresholdHigh(20000); // change if needed // ADS.setComparatorThresholdHigh(20000); // change if needed
// set the threshold as a voltage by using the voltage factor. // set the threshold as a voltage by using the voltage factor.
float f = ADS.toVoltage(1); // voltage factor float f = ADS.toVoltage(1); // voltage factor
ADS.setComparatorThresholdLow(1.234 / f); // convert volts to number needed ADS.setComparatorThresholdLow(1.234 / f); // convert volts to number needed
ADS.setComparatorThresholdHigh(3.142 / f); // convert volts to number needed ADS.setComparatorThresholdHigh(3.142 / f); // convert volts to number needed
Serial.println(ADS.getComparatorThresholdLow()); Serial.println(ADS.getComparatorThresholdLow());
Serial.println(ADS.getComparatorThresholdHigh()); Serial.println(ADS.getComparatorThresholdHigh());
@ -64,7 +66,7 @@ void loop()
int16_t val_0 = ADS.readADC(0); int16_t val_0 = ADS.readADC(0);
float f = ADS.toVoltage(1); // voltage factor float f = ADS.toVoltage(1); // voltage factor
Serial.print("\tAnalog0: "); Serial.print("\tAnalog0: ");
Serial.print(val_0); Serial.print(val_0);
@ -80,5 +82,5 @@ void loop()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -4,13 +4,13 @@
// PURPOSE: read analog inputs - straightforward. // PURPOSE: read analog inputs - straightforward.
// URL: https://github.com/RobTillaart/ADS1X15 // URL: https://github.com/RobTillaart/ADS1X15
// test // test
// connect 1 potmeter per port. // connect 1 potentiometer per port.
// //
// GND ---[ x ]------ 5V // GND ---[ x ]------ 5V
// | // |
// //
// measure at x (connect to AIN0). // measure at x (connect to AIN0).
// //
@ -50,7 +50,7 @@ void loop()
int16_t val_2 = ADS.readADC(2); int16_t val_2 = ADS.readADC(2);
int16_t val_3 = ADS.readADC(3); int16_t val_3 = ADS.readADC(3);
float f = ADS.toVoltage(1); // voltage factor float f = ADS.toVoltage(1); // voltage factor
Serial.print("\tAnalog0: "); Serial.print(val_0); Serial.print('\t'); Serial.println(val_0 * f, 3); Serial.print("\tAnalog0: "); Serial.print(val_0); Serial.print('\t'); Serial.println(val_0 * f, 3);
Serial.print("\tAnalog1: "); Serial.print(val_1); Serial.print('\t'); Serial.println(val_1 * f, 3); Serial.print("\tAnalog1: "); Serial.print(val_1); Serial.print('\t'); Serial.println(val_1 * f, 3);
@ -62,5 +62,5 @@ void loop()
} }
// -- END OF FILE -- // -- END OF FILE --

View File

@ -15,7 +15,7 @@
"type": "git", "type": "git",
"url": "https://github.com/RobTillaart/ADS1X15" "url": "https://github.com/RobTillaart/ADS1X15"
}, },
"version": "0.3.13", "version": "0.4.0",
"license": "MIT", "license": "MIT",
"frameworks": "*", "frameworks": "*",
"platforms": "*", "platforms": "*",

View File

@ -1,5 +1,5 @@
name=ADS1X15 name=ADS1X15
version=0.3.13 version=0.4.0
author=Rob Tillaart <rob.tillaart@gmail.com> author=Rob Tillaart <rob.tillaart@gmail.com>
maintainer=Rob Tillaart <rob.tillaart@gmail.com> maintainer=Rob Tillaart <rob.tillaart@gmail.com>
sentence=Arduino library for ADS1015 - I2C 12 bit ADC and ADS1115 I2C 16 bit ADC sentence=Arduino library for ADS1015 - I2C 12 bit ADC and ADS1115 I2C 16 bit ADC

View File

@ -27,6 +27,7 @@
unittest_setup() unittest_setup()
{ {
fprintf(stderr, "ADS1X15_LIB_VERSION: %s\n", (char *) ADS1X15_LIB_VERSION);
} }
@ -37,8 +38,6 @@ unittest_teardown()
unittest(test_constants) unittest(test_constants)
{ {
fprintf(stderr, "ADS1X15_LIB_VERSION: %s\n", (char *) ADS1X15_LIB_VERSION);
assertEqual(0x48, ADS1015_ADDRESS); assertEqual(0x48, ADS1015_ADDRESS);
assertEqual(0x48, ADS1115_ADDRESS); assertEqual(0x48, ADS1115_ADDRESS);
assertEqual( 0, ADS1X15_OK); assertEqual( 0, ADS1X15_OK);
@ -51,6 +50,9 @@ unittest(test_constants)
unittest(test_begin) unittest(test_begin)
{ {
ADS1115 ADS(0x48); ADS1115 ADS(0x48);
Wire.begin();
assertTrue(ADS.begin()); assertTrue(ADS.begin());
assertTrue(ADS.isConnected()); assertTrue(ADS.isConnected());
assertTrue(ADS.isBusy()); assertTrue(ADS.isBusy());
@ -60,6 +62,9 @@ unittest(test_begin)
unittest(test_gain) unittest(test_gain)
{ {
ADS1115 ADS(0x48); ADS1115 ADS(0x48);
Wire.begin();
assertTrue(ADS.begin()); assertTrue(ADS.begin());
assertEqual(0, ADS.getGain()); assertEqual(0, ADS.getGain());
@ -78,6 +83,9 @@ unittest(test_gain)
unittest(test_Voltage) unittest(test_Voltage)
{ {
ADS1115 ADS(0x48); ADS1115 ADS(0x48);
Wire.begin();
assertTrue(ADS.begin()); assertTrue(ADS.begin());
// should test all values? // should test all values?
@ -96,4 +104,5 @@ unittest(test_Voltage)
unittest_main() unittest_main()
// -------- // -- END OF FILE --