ads1115 analog to digital converter library
Developing software is a hard job. Thanks for the coffee !! 😁
npm install @iiot2k/ads1115
or add in your package.json
:
"dependencies": {
"@iiot2k/ads1115": "latest"
},
View on npm📌
View on GitHub📌
Report any issues here📌
ads1115📌 16bit analog to digital converter
- 16bit Conversion Resolution.
- Four Analog Inputs.
- Each input can be selected Single-Ended, Differential.
- Internal Voltage Reference.
- Internal Oscillator.
- Programmable Data Rate 8 SPS to 860 SPS.
- The PGA offers input ranges from ±256 mV to ±6144 mV.
- I2C Interface with four pin-selectable addresses.
- This library works on Raspberry Pi with 32bit or 64bit OS.
- The output value is mV or adc raw data.
- Enable I2C with raspi-config.
- In this case i2c-1 is enabled (port=1).
- If you use i2c-0 port add
dtparam=i2c_vc=on
to /boot/config.txt,
then Pin27=SDA, Pin28=SCK.
- For other ports add this to /boot/config.txt.
I2C Address | ADDR Pin |
---|---|
48H | GND or open |
49H | VCC |
4AH | SDA |
4BH | SCL |
Node.js API functions are explained in document API.md
Node.js examples are on examples folder.
// example reads single adc input
"use strict";
const ads1115 = require("@iiot2k/ads1115");
ads1115.read(
1, // i2c-1
ads1115.ADR_48, // address 0x48
ads1115.MUX_I0_GND, // AIN0 - GND
ads1115.GAIN_4096, // 4096 mV
ads1115.RATE_128, // 128 SPS
false, // no rawdata
function(data) {
if (data === undefined)
console.log(ads1115.error_text());
else
console.log(data, "mV");
});
This library uses C++ addon modules as interface to hardware.
Therefore, there is also a C++ interface to the drivers.
Unfortunately the C++ addon modules are not open source.
I provide the C++ static link libraries.
But if you are interested in the sources, I can send them to you.
Please send me an email with your name to iiot2k@gmail.com
I can only provide limited support for the C++ addon modules sources.
I have shown some C++ examples in the cpp directory and on GitHub📌
The C++ API functions are described in the header file ads1115_lib.h
// example reads single adc input
#include <stdio.h>
#include "ads1115_lib.h"
#define PORT 1 // i2c-1
int main()
{
double value;
bool ret = ads1115::read(
PORT,
ads1115::ADR_48, // address 0x48
ads1115::MUX_I0_GND, // AIN0 - GND
ads1115::GAIN_4096, // 4096 mV
ads1115::RATE_128, // 128 SPS
false, // no rawdata
value);
if (ret)
printf("%.0fmV\n", value);
else
printf("%s\n", ads1115::error_text());
return 0;
}